home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / CodeWarrior Lite / Metrowerks C⁄C++ Lite / Headers / Universal Headers 2.0.1f / Files.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-22  |  64.8 KB  |  2,241 lines  |  [TEXT/MMCC]

  1. /*
  2.      File:        Files.h
  3.  
  4.      Contains:    File Manager (HFS and MFS) Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. */
  19.  
  20. #ifndef __FILES__
  21. #define __FILES__
  22.  
  23.  
  24. #ifndef __TYPES__
  25. #include <Types.h>
  26. #endif
  27. /*    #include <ConditionalMacros.h>                                */
  28.  
  29. #ifndef __MIXEDMODE__
  30. #include <MixedMode.h>
  31. #endif
  32.  
  33. #ifndef __OSUTILS__
  34. #include <OSUtils.h>
  35. #endif
  36. /*    #include <Memory.h>                                            */
  37.  
  38. #ifdef __cplusplus
  39. extern "C" {
  40. #endif
  41.  
  42. #if PRAGMA_ALIGN_SUPPORTED
  43. #pragma options align=mac68k
  44. #endif
  45.  
  46. #if PRAGMA_IMPORT_SUPPORTED
  47. #pragma import on
  48. #endif
  49.  
  50.  
  51. enum {
  52. /* Finder Constants */
  53.     fsAtMark                    = 0,
  54.     fOnDesk                        = 1,
  55.     fsCurPerm                    = 0,
  56.     fHasBundle                    = 8192,
  57.     fsRdPerm                    = 1,
  58.     fInvisible                    = 16384,
  59.     fTrash                        = -3,
  60.     fsWrPerm                    = 2,
  61.     fDesktop                    = -2,
  62.     fsRdWrPerm                    = 3,
  63.     fDisk                        = 0,
  64.     fsRdWrShPerm                = 4,
  65.     fsFromStart                    = 1,
  66.     fsFromLEOF                    = 2,
  67.     fsFromMark                    = 3,
  68.     rdVerify                    = 64,
  69.     ioMapBuffer                    = 4,
  70.     ioModeReserved                = 8,
  71.     ioDirFlg                    = 3,                            /* see IM IV-125 */
  72.     ioDirMask                    = 0x10,
  73.     fsRtParID                    = 1,
  74.     fsRtDirID                    = 2
  75. };
  76.  
  77. enum {
  78. /* CatSearch SearchBits Constants */
  79.     fsSBPartialName                = 1,
  80.     fsSBFullName                = 2,
  81.     fsSBFlAttrib                = 4,
  82.     fsSBFlFndrInfo                = 8,
  83.     fsSBFlLgLen                    = 32,
  84.     fsSBFlPyLen                    = 64,
  85.     fsSBFlRLgLen                = 128,
  86.     fsSBFlRPyLen                = 256,
  87.     fsSBFlCrDat                    = 512,
  88.     fsSBFlMdDat                    = 1024,
  89.     fsSBFlBkDat                    = 2048,
  90.     fsSBFlXFndrInfo                = 4096,
  91.     fsSBFlParID                    = 8192,
  92.     fsSBNegate                    = 16384,
  93.     fsSBDrUsrWds                = 8,
  94.     fsSBDrNmFls                    = 16,
  95.     fsSBDrCrDat                    = 512,
  96.     fsSBDrMdDat                    = 1024,
  97.     fsSBDrBkDat                    = 2048,
  98.     fsSBDrFndrInfo                = 4096
  99. };
  100.  
  101. enum {
  102.     fsSBDrParID                    = 8192,
  103. /* vMAttrib (GetVolParms) bit position constants */
  104.     bLimitFCBs                    = 31,
  105.     bLocalWList                    = 30,
  106.     bNoMiniFndr                    = 29,
  107.     bNoVNEdit                    = 28,
  108.     bNoLclSync                    = 27,
  109.     bTrshOffLine                = 26,
  110.     bNoSwitchTo                    = 25,
  111.     bNoDeskItems                = 20,
  112.     bNoBootBlks                    = 19,
  113.     bAccessCntl                    = 18,
  114.     bNoSysDir                    = 17,
  115.     bHasExtFSVol                = 16,
  116.     bHasOpenDeny                = 15,
  117.     bHasCopyFile                = 14,
  118.     bHasMoveRename                = 13,
  119.     bHasDesktopMgr                = 12,
  120.     bHasShortName                = 11,
  121.     bHasFolderLock                = 10,
  122.     bHasPersonalAccessPrivileges = 9
  123. };
  124.  
  125. enum {
  126.     bHasUserGroupList            = 8,
  127.     bHasCatSearch                = 7,
  128.     bHasFileIDs                    = 6,
  129.     bHasBTreeMgr                = 5,
  130.     bHasBlankAccessPrivileges    = 4,
  131. /* Desktop Database icon Constants */
  132.     kLargeIcon                    = 1,
  133.     kLarge4BitIcon                = 2,
  134.     kLarge8BitIcon                = 3,
  135.     kSmallIcon                    = 4,
  136.     kSmall4BitIcon                = 5,
  137.     kSmall8BitIcon                = 6,
  138.     kLargeIconSize                = 256,
  139.     kLarge4BitIconSize            = 512,
  140.     kLarge8BitIconSize            = 1024,
  141.     kSmallIconSize                = 64,
  142.     kSmall4BitIconSize            = 128,
  143.     kSmall8BitIconSize            = 256,
  144. /* Foreign Privilege Model Identifiers */
  145.     fsUnixPriv                    = 1,
  146. /* Version Release Stage Codes */
  147.     developStage                = 0x20,
  148.     alphaStage                    = 0x40
  149. };
  150.  
  151. enum {
  152.     betaStage                    = 0x60,
  153.     finalStage                    = 0x80,
  154. /* Authentication Constants */
  155.     kNoUserAuthentication        = 1,
  156.     kPassword                    = 2,
  157.     kEncryptPassword            = 3,
  158.     kTwoWayEncryptPassword        = 6
  159. };
  160.  
  161. enum {
  162.     hFileInfo,
  163.     dirInfo
  164. };
  165.  
  166. typedef SInt8 CInfoType;
  167.  
  168.  
  169. enum {
  170. /* mapping codes (ioObjType) for MapName & MapID */
  171.     kOwnerID2Name                = 1,
  172.     kGroupID2Name                = 2,
  173.     kOwnerName2ID                = 3,
  174.     kGroupName2ID                = 4,
  175. /* types of oj object to be returned (ioObjType) for _GetUGEntry */
  176.     kReturnNextUser                = 1,
  177.     kReturnNextGroup            = 2,
  178.     kReturnNextUG                = 3
  179. };
  180.  
  181. struct FInfo {
  182.     OSType                            fdType;                        /*the type of the file*/
  183.     OSType                            fdCreator;                    /*file's creator*/
  184.     unsigned short                    fdFlags;                    /*flags ex. hasbundle,invisible,locked, etc.*/
  185.     Point                            fdLocation;                    /*file's location in folder*/
  186.     short                            fdFldr;                        /*folder containing file*/
  187. };
  188. typedef struct FInfo FInfo;
  189.  
  190. struct FXInfo {
  191.     short                            fdIconID;                    /*Icon ID*/
  192.     short                            fdUnused[3];                /*unused but reserved 6 bytes*/
  193.     SInt8                            fdScript;                    /*Script flag and number*/
  194.     SInt8                            fdXFlags;                    /*More flag bits*/
  195.     short                            fdComment;                    /*Comment ID*/
  196.     long                            fdPutAway;                    /*Home Dir ID*/
  197. };
  198. typedef struct FXInfo FXInfo;
  199.  
  200. struct DInfo {
  201.     Rect                            frRect;                        /*folder rect*/
  202.     unsigned short                    frFlags;                    /*Flags*/
  203.     Point                            frLocation;                    /*folder location*/
  204.     short                            frView;                        /*folder view*/
  205. };
  206. typedef struct DInfo DInfo;
  207.  
  208. struct DXInfo {
  209.     Point                            frScroll;                    /*scroll position*/
  210.     long                            frOpenChain;                /*DirID chain of open folders*/
  211.     SInt8                            frScript;                    /*Script flag and number*/
  212.     SInt8                            frXFlags;                    /*More flag bits*/
  213.     short                            frComment;                    /*comment*/
  214.     long                            frPutAway;                    /*DirID*/
  215. };
  216. typedef struct DXInfo DXInfo;
  217.  
  218. struct GetVolParmsInfoBuffer {
  219.     short                            vMVersion;                    /*version number*/
  220.     long                            vMAttrib;                    /*bit vector of attributes (see vMAttrib constants)*/
  221.     Handle                            vMLocalHand;                /*handle to private data*/
  222.     long                            vMServerAdr;                /*AppleTalk server address or zero*/
  223.     long                            vMVolumeGrade;                /*approx. speed rating or zero if unrated*/
  224.     short                            vMForeignPrivID;            /*foreign privilege model supported or zero if none*/
  225. };
  226. typedef struct GetVolParmsInfoBuffer GetVolParmsInfoBuffer;
  227.  
  228. typedef union ParamBlockRec ParamBlockRec;
  229.  
  230. typedef ParamBlockRec *ParmBlkPtr;
  231.  
  232. /*
  233.         IOCompletionProcPtr uses register based parameters on the 68k and cannot
  234.         be written in or called from a high-level language without the help of
  235.         mixed mode or assembly glue.
  236.  
  237.             typedef pascal void (*IOCompletionProcPtr)(ParmBlkPtr paramBlock);
  238.  
  239.         In:
  240.          => paramBlock      A0.L
  241. */
  242.  
  243. #if GENERATINGCFM
  244. typedef UniversalProcPtr IOCompletionUPP;
  245. #else
  246. typedef Register68kProcPtr IOCompletionUPP;
  247. #endif
  248.  
  249. struct IOParam {
  250.     QElemPtr                        qLink;
  251.     short                            qType;
  252.     short                            ioTrap;
  253.     Ptr                                ioCmdAddr;
  254.     IOCompletionUPP                    ioCompletion;
  255.     OSErr                            ioResult;
  256.     StringPtr                        ioNamePtr;
  257.     short                            ioVRefNum;
  258.     short                            ioRefNum;
  259.     SInt8                            ioVersNum;
  260.     SInt8                            ioPermssn;
  261.     Ptr                                ioMisc;
  262.     Ptr                                ioBuffer;
  263.     long                            ioReqCount;
  264.     long                            ioActCount;
  265.     short                            ioPosMode;
  266.     long                            ioPosOffset;
  267. };
  268. typedef struct IOParam IOParam, *IOParamPtr;
  269.  
  270. struct FileParam {
  271.     QElemPtr                        qLink;
  272.     short                            qType;
  273.     short                            ioTrap;
  274.     Ptr                                ioCmdAddr;
  275.     IOCompletionUPP                    ioCompletion;
  276.     OSErr                            ioResult;
  277.     StringPtr                        ioNamePtr;
  278.     short                            ioVRefNum;
  279.     short                            ioFRefNum;
  280.     SInt8                            ioFVersNum;
  281.     SInt8                            filler1;
  282.     short                            ioFDirIndex;
  283.     SInt8                            ioFlAttrib;
  284.     SInt8                            ioFlVersNum;
  285.     FInfo                            ioFlFndrInfo;
  286.     unsigned long                    ioFlNum;
  287.     unsigned short                    ioFlStBlk;
  288.     long                            ioFlLgLen;
  289.     long                            ioFlPyLen;
  290.     unsigned short                    ioFlRStBlk;
  291.     long                            ioFlRLgLen;
  292.     long                            ioFlRPyLen;
  293.     unsigned long                    ioFlCrDat;
  294.     unsigned long                    ioFlMdDat;
  295. };
  296. typedef struct FileParam FileParam, *FileParamPtr;
  297.  
  298. struct VolumeParam {
  299.     QElemPtr                        qLink;
  300.     short                            qType;
  301.     short                            ioTrap;
  302.     Ptr                                ioCmdAddr;
  303.     IOCompletionUPP                    ioCompletion;
  304.     OSErr                            ioResult;
  305.     StringPtr                        ioNamePtr;
  306.     short                            ioVRefNum;
  307.     long                            filler2;
  308.     short                            ioVolIndex;
  309.     unsigned long                    ioVCrDate;
  310.     unsigned long                    ioVLsBkUp;
  311.     unsigned short                    ioVAtrb;
  312.     unsigned short                    ioVNmFls;
  313.     unsigned short                    ioVDirSt;
  314.     short                            ioVBlLn;
  315.     unsigned short                    ioVNmAlBlks;
  316.     long                            ioVAlBlkSiz;
  317.     long                            ioVClpSiz;
  318.     unsigned short                    ioAlBlSt;
  319.     unsigned long                    ioVNxtFNum;
  320.     unsigned short                    ioVFrBlk;
  321. };
  322. typedef struct VolumeParam VolumeParam, *VolumeParamPtr;
  323.  
  324. struct CntrlParam {
  325.     QElemPtr                        qLink;
  326.     short                            qType;
  327.     short                            ioTrap;
  328.     Ptr                                ioCmdAddr;
  329.     IOCompletionUPP                    ioCompletion;
  330.     OSErr                            ioResult;
  331.     StringPtr                        ioNamePtr;
  332.     short                            ioVRefNum;
  333.     short                            ioCRefNum;
  334.     short                            csCode;
  335.     short                            csParam[11];
  336. };
  337. typedef struct CntrlParam CntrlParam, *CntrlParamPtr;
  338.  
  339. struct SlotDevParam {
  340.     QElemPtr                        qLink;
  341.     short                            qType;
  342.     short                            ioTrap;
  343.     Ptr                                ioCmdAddr;
  344.     IOCompletionUPP                    ioCompletion;
  345.     OSErr                            ioResult;
  346.     StringPtr                        ioNamePtr;
  347.     short                            ioVRefNum;
  348.     short                            ioSRefNum;
  349.     SInt8                            ioSVersNum;
  350.     SInt8                            ioSPermssn;
  351.     Ptr                                ioSMix;
  352.     short                            ioSFlags;
  353.     SInt8                            ioSlot;
  354.     SInt8                            ioID;
  355. };
  356. typedef struct SlotDevParam SlotDevParam, *SlotDevParamPtr;
  357.  
  358. struct MultiDevParam {
  359.     QElemPtr                        qLink;
  360.     short                            qType;
  361.     short                            ioTrap;
  362.     Ptr                                ioCmdAddr;
  363.     IOCompletionUPP                    ioCompletion;
  364.     OSErr                            ioResult;
  365.     StringPtr                        ioNamePtr;
  366.     short                            ioVRefNum;
  367.     short                            ioMRefNum;
  368.     SInt8                            ioMVersNum;
  369.     SInt8                            ioMPermssn;
  370.     Ptr                                ioMMix;
  371.     short                            ioMFlags;
  372.     Ptr                                ioSEBlkPtr;
  373. };
  374. typedef struct MultiDevParam MultiDevParam, *MultiDevParamPtr;
  375.  
  376. union ParamBlockRec {
  377.     IOParam                            ioParam;
  378.     FileParam                        fileParam;
  379.     VolumeParam                        volumeParam;
  380.     CntrlParam                        cntrlParam;
  381.     SlotDevParam                    slotDevParam;
  382.     MultiDevParam                    multiDevParam;
  383. };
  384. struct HFileInfo {
  385.     QElemPtr                        qLink;
  386.     short                            qType;
  387.     short                            ioTrap;
  388.     Ptr                                ioCmdAddr;
  389.     IOCompletionUPP                    ioCompletion;
  390.     OSErr                            ioResult;
  391.     StringPtr                        ioNamePtr;
  392.     short                            ioVRefNum;
  393.     short                            ioFRefNum;
  394.     SInt8                            ioFVersNum;
  395.     SInt8                            filler1;
  396.     short                            ioFDirIndex;
  397.     SInt8                            ioFlAttrib;
  398.     SInt8                            filler2;
  399.     FInfo                            ioFlFndrInfo;
  400.     long                            ioDirID;
  401.     unsigned short                    ioFlStBlk;
  402.     long                            ioFlLgLen;
  403.     long                            ioFlPyLen;
  404.     unsigned short                    ioFlRStBlk;
  405.     long                            ioFlRLgLen;
  406.     long                            ioFlRPyLen;
  407.     unsigned long                    ioFlCrDat;
  408.     unsigned long                    ioFlMdDat;
  409.     unsigned long                    ioFlBkDat;
  410.     FXInfo                            ioFlXFndrInfo;
  411.     long                            ioFlParID;
  412.     long                            ioFlClpSiz;
  413. };
  414. typedef struct HFileInfo HFileInfo;
  415.  
  416. struct DirInfo {
  417.     QElemPtr                        qLink;
  418.     short                            qType;
  419.     short                            ioTrap;
  420.     Ptr                                ioCmdAddr;
  421.     IOCompletionUPP                    ioCompletion;
  422.     OSErr                            ioResult;
  423.     StringPtr                        ioNamePtr;
  424.     short                            ioVRefNum;
  425.     short                            ioFRefNum;
  426.     SInt8                            ioFVersNum;
  427.     SInt8                            filler1;
  428.     short                            ioFDirIndex;
  429.     SInt8                            ioFlAttrib;
  430.     SInt8                            filler2;
  431.     DInfo                            ioDrUsrWds;
  432.     long                            ioDrDirID;
  433.     unsigned short                    ioDrNmFls;
  434.     short                            filler3[9];
  435.     unsigned long                    ioDrCrDat;
  436.     unsigned long                    ioDrMdDat;
  437.     unsigned long                    ioDrBkDat;
  438.     DXInfo                            ioDrFndrInfo;
  439.     long                            ioDrParID;
  440. };
  441. typedef struct DirInfo DirInfo;
  442.  
  443. union CInfoPBRec {
  444.     HFileInfo                        hFileInfo;
  445.     DirInfo                            dirInfo;
  446. };
  447. typedef union CInfoPBRec CInfoPBRec, *CInfoPBPtr;
  448.  
  449. struct CatPositionRec {
  450.     long                            initialize;
  451.     short                            priv[6];
  452. };
  453. typedef struct CatPositionRec CatPositionRec;
  454.  
  455. struct FSSpec {
  456.     short                            vRefNum;
  457.     long                            parID;
  458.     Str63                            name;
  459. };
  460. typedef struct FSSpec FSSpec;
  461.  
  462. typedef FSSpec *FSSpecPtr, **FSSpecHandle;
  463.  
  464. /* pointer to array of FSSpecs */
  465. typedef FSSpecPtr FSSpecArrayPtr;
  466.  
  467. /* The only difference between "const FSSpec*" and "ConstFSSpecPtr" is 
  468.    that as a parameter, ConstFSSpecPtr is allowed to be NULL */
  469. typedef const FSSpec *ConstFSSpecPtr;
  470.  
  471. /* The following are structures to be filled out with the _GetVolMountInfo call
  472.  and passed back into the _VolumeMount call for external file system mounts. */
  473. /* the "signature" of the file system */
  474. typedef OSType VolumeType;
  475.  
  476.  
  477. enum {
  478. /* the signature for AppleShare */
  479.     AppleShareMediaType            = 'afpm'
  480. };
  481.  
  482. struct VolMountInfoHeader {
  483.     short                            length;                        /* length of location data (including self) */
  484.     VolumeType                        media;                        /* type of media.  Variable length data follows */
  485. };
  486. typedef struct VolMountInfoHeader VolMountInfoHeader;
  487.  
  488. typedef VolMountInfoHeader *VolMountInfoPtr;
  489.  
  490. struct AFPVolMountInfo {
  491.     short                            length;                        /* length of location data (including self) */
  492.     VolumeType                        media;                        /* type of media */
  493.     short                            flags;                        /* bits for no messages, no reconnect */
  494.     SInt8                            nbpInterval;                /* NBP Interval parameter (IM2, p.322) */
  495.     SInt8                            nbpCount;                    /* NBP Interval parameter (IM2, p.322) */
  496.     short                            uamType;                    /* User Authentication Method */
  497.     short                            zoneNameOffset;                /* short positive offset from start of struct to Zone Name */
  498.     short                            serverNameOffset;            /* offset to pascal Server Name string */
  499.     short                            volNameOffset;                /* offset to pascal Volume Name string */
  500.     short                            userNameOffset;                /* offset to pascal User Name string */
  501.     short                            userPasswordOffset;            /* offset to pascal User Password string */
  502.     short                            volPasswordOffset;            /* offset to pascal Volume Password string */
  503.     char                            AFPData[144];                /* variable length data may follow */
  504. };
  505. typedef struct AFPVolMountInfo AFPVolMountInfo;
  506.  
  507. typedef AFPVolMountInfo *AFPVolMountInfoPtr;
  508.  
  509. struct DTPBRec {
  510.     QElemPtr                        qLink;
  511.     short                            qType;
  512.     short                            ioTrap;
  513.     Ptr                                ioCmdAddr;
  514.     IOCompletionUPP                    ioCompletion;
  515.     OSErr                            ioResult;
  516.     StringPtr                        ioNamePtr;
  517.     short                            ioVRefNum;
  518.     short                            ioDTRefNum;                    /* desktop refnum */
  519.     short                            ioIndex;
  520.     long                            ioTagInfo;
  521.     Ptr                                ioDTBuffer;
  522.     long                            ioDTReqCount;
  523.     long                            ioDTActCount;
  524.     SInt8                            ioFiller1;
  525.     SInt8                            ioIconType;
  526.     short                            ioFiller2;
  527.     long                            ioDirID;
  528.     OSType                            ioFileCreator;
  529.     OSType                            ioFileType;
  530.     long                            ioFiller3;
  531.     long                            ioDTLgLen;
  532.     long                            ioDTPyLen;
  533.     short                            ioFiller4[14];
  534.     long                            ioAPPLParID;
  535. };
  536. typedef struct DTPBRec DTPBRec;
  537.  
  538. typedef DTPBRec *DTPBPtr;
  539.  
  540. struct HIOParam {
  541.     QElemPtr                        qLink;
  542.     short                            qType;
  543.     short                            ioTrap;
  544.     Ptr                                ioCmdAddr;
  545.     IOCompletionUPP                    ioCompletion;
  546.     OSErr                            ioResult;
  547.     StringPtr                        ioNamePtr;
  548.     short                            ioVRefNum;
  549.     short                            ioRefNum;
  550.     SInt8                            ioVersNum;
  551.     SInt8                            ioPermssn;
  552.     Ptr                                ioMisc;
  553.     Ptr                                ioBuffer;
  554.     long                            ioReqCount;
  555.     long                            ioActCount;
  556.     short                            ioPosMode;
  557.     long                            ioPosOffset;
  558. };
  559. typedef struct HIOParam HIOParam, *HIOParamPtr;
  560.  
  561. struct HFileParam {
  562.     QElemPtr                        qLink;
  563.     short                            qType;
  564.     short                            ioTrap;
  565.     Ptr                                ioCmdAddr;
  566.     IOCompletionUPP                    ioCompletion;
  567.     OSErr                            ioResult;
  568.     StringPtr                        ioNamePtr;
  569.     short                            ioVRefNum;
  570.     short                            ioFRefNum;
  571.     SInt8                            ioFVersNum;
  572.     SInt8                            filler1;
  573.     short                            ioFDirIndex;
  574.     SInt8                            ioFlAttrib;
  575.     SInt8                            ioFlVersNum;
  576.     FInfo                            ioFlFndrInfo;
  577.     long                            ioDirID;
  578.     unsigned short                    ioFlStBlk;
  579.     long                            ioFlLgLen;
  580.     long                            ioFlPyLen;
  581.     unsigned short                    ioFlRStBlk;
  582.     long                            ioFlRLgLen;
  583.     long                            ioFlRPyLen;
  584.     unsigned long                    ioFlCrDat;
  585.     unsigned long                    ioFlMdDat;
  586. };
  587. typedef struct HFileParam HFileParam, *HFileParamPtr;
  588.  
  589. struct HVolumeParam {
  590.     QElemPtr                        qLink;
  591.     short                            qType;
  592.     short                            ioTrap;
  593.     Ptr                                ioCmdAddr;
  594.     IOCompletionUPP                    ioCompletion;
  595.     OSErr                            ioResult;
  596.     StringPtr                        ioNamePtr;
  597.     short                            ioVRefNum;
  598.     long                            filler2;
  599.     short                            ioVolIndex;
  600.     unsigned long                    ioVCrDate;
  601.     unsigned long                    ioVLsMod;
  602.     short                            ioVAtrb;
  603.     unsigned short                    ioVNmFls;
  604.     short                            ioVBitMap;
  605.     short                            ioAllocPtr;
  606.     unsigned short                    ioVNmAlBlks;
  607.     long                            ioVAlBlkSiz;
  608.     long                            ioVClpSiz;
  609.     short                            ioAlBlSt;
  610.     long                            ioVNxtCNID;
  611.     unsigned short                    ioVFrBlk;
  612.     unsigned short                    ioVSigWord;
  613.     short                            ioVDrvInfo;
  614.     short                            ioVDRefNum;
  615.     short                            ioVFSID;
  616.     unsigned long                    ioVBkUp;
  617.     unsigned short                    ioVSeqNum;
  618.     long                            ioVWrCnt;
  619.     long                            ioVFilCnt;
  620.     long                            ioVDirCnt;
  621.     long                            ioVFndrInfo[8];
  622. };
  623. typedef struct HVolumeParam HVolumeParam, *HVolumeParamPtr;
  624.  
  625. struct AccessParam {
  626.     QElemPtr                        qLink;
  627.     short                            qType;
  628.     short                            ioTrap;
  629.     Ptr                                ioCmdAddr;
  630.     IOCompletionUPP                    ioCompletion;
  631.     OSErr                            ioResult;
  632.     StringPtr                        ioNamePtr;
  633.     short                            ioVRefNum;
  634.     short                            filler3;
  635.     short                            ioDenyModes;
  636.     short                            filler4;
  637.     SInt8                            filler5;
  638.     SInt8                            ioACUser;
  639.     long                            filler6;
  640.     long                            ioACOwnerID;
  641.     long                            ioACGroupID;
  642.     long                            ioACAccess;
  643.     long                            ioDirID;
  644. };
  645. typedef struct AccessParam AccessParam, *AccessParamPtr;
  646.  
  647. struct ObjParam {
  648.     QElemPtr                        qLink;
  649.     short                            qType;
  650.     short                            ioTrap;
  651.     Ptr                                ioCmdAddr;
  652.     IOCompletionUPP                    ioCompletion;
  653.     OSErr                            ioResult;
  654.     StringPtr                        ioNamePtr;
  655.     short                            ioVRefNum;
  656.     short                            filler7;
  657.     short                            ioObjType;
  658.     StringPtr                        ioObjNamePtr;
  659.     long                            ioObjID;
  660. };
  661. typedef struct ObjParam ObjParam, *ObjParamPtr;
  662.  
  663. struct CopyParam {
  664.     QElemPtr                        qLink;
  665.     short                            qType;
  666.     short                            ioTrap;
  667.     Ptr                                ioCmdAddr;
  668.     IOCompletionUPP                    ioCompletion;
  669.     OSErr                            ioResult;
  670.     StringPtr                        ioNamePtr;
  671.     short                            ioVRefNum;
  672.     short                            ioDstVRefNum;
  673.     short                            filler8;
  674.     StringPtr                        ioNewName;
  675.     StringPtr                        ioCopyName;
  676.     long                            ioNewDirID;
  677.     long                            filler14;
  678.     long                            filler15;
  679.     long                            ioDirID;
  680. };
  681. typedef struct CopyParam CopyParam, *CopyParamPtr;
  682.  
  683. struct WDParam {
  684.     QElemPtr                        qLink;
  685.     short                            qType;
  686.     short                            ioTrap;
  687.     Ptr                                ioCmdAddr;
  688.     IOCompletionUPP                    ioCompletion;
  689.     OSErr                            ioResult;
  690.     StringPtr                        ioNamePtr;
  691.     short                            ioVRefNum;
  692.     short                            filler9;
  693.     short                            ioWDIndex;
  694.     long                            ioWDProcID;
  695.     short                            ioWDVRefNum;
  696.     short                            filler10;
  697.     long                            filler11;
  698.     long                            filler12;
  699.     long                            filler13;
  700.     long                            ioWDDirID;
  701. };
  702. typedef struct WDParam WDParam, *WDParamPtr;
  703.  
  704. struct FIDParam {
  705.     QElemPtr                        qLink;
  706.     short                            qType;
  707.     short                            ioTrap;
  708.     Ptr                                ioCmdAddr;
  709.     IOCompletionUPP                    ioCompletion;
  710.     OSErr                            ioResult;
  711.     StringPtr                        ioNamePtr;
  712.     short                            ioVRefNum;
  713.     long                            filler14;
  714.     StringPtr                        ioDestNamePtr;
  715.     long                            filler15;
  716.     long                            ioDestDirID;
  717.     long                            filler16;
  718.     long                            filler17;
  719.     long                            ioSrcDirID;
  720.     short                            filler18;
  721.     long                            ioFileID;
  722. };
  723. typedef struct FIDParam FIDParam, *FIDParamPtr;
  724.  
  725. struct ForeignPrivParam {
  726.     QElemPtr                        qLink;
  727.     short                            qType;
  728.     short                            ioTrap;
  729.     Ptr                                ioCmdAddr;
  730.     IOCompletionUPP                    ioCompletion;
  731.     OSErr                            ioResult;
  732.     StringPtr                        ioNamePtr;
  733.     short                            ioVRefNum;
  734.     long                            ioFiller21;
  735.     long                            ioFiller22;
  736.     Ptr                                ioForeignPrivBuffer;
  737.     long                            ioForeignPrivActCount;
  738.     long                            ioForeignPrivReqCount;
  739.     long                            ioFiller23;
  740.     long                            ioForeignPrivDirID;
  741.     long                            ioForeignPrivInfo1;
  742.     long                            ioForeignPrivInfo2;
  743.     long                            ioForeignPrivInfo3;
  744.     long                            ioForeignPrivInfo4;
  745. };
  746. typedef struct ForeignPrivParam ForeignPrivParam, *ForeignPrivParamPtr;
  747.  
  748. struct CSParam {
  749.     QElemPtr                        qLink;
  750.     short                            qType;
  751.     short                            ioTrap;
  752.     Ptr                                ioCmdAddr;
  753.     IOCompletionUPP                    ioCompletion;
  754.     OSErr                            ioResult;
  755.     StringPtr                        ioNamePtr;
  756.     short                            ioVRefNum;
  757.     FSSpecPtr                        ioMatchPtr;
  758.     long                            ioReqMatchCount;
  759.     long                            ioActMatchCount;
  760.     long                            ioSearchBits;
  761.     CInfoPBPtr                        ioSearchInfo1;
  762.     CInfoPBPtr                        ioSearchInfo2;
  763.     long                            ioSearchTime;
  764.     CatPositionRec                    ioCatPosition;
  765.     Ptr                                ioOptBuffer;
  766.     long                            ioOptBufSize;
  767. };
  768. typedef struct CSParam CSParam, *CSParamPtr;
  769.  
  770. union HParamBlockRec {
  771.     HIOParam                        ioParam;
  772.     HFileParam                        fileParam;
  773.     HVolumeParam                    volumeParam;
  774.     AccessParam                        accessParam;
  775.     ObjParam                        objParam;
  776.     CopyParam                        copyParam;
  777.     WDParam                            wdParam;
  778.     FIDParam                        fidParam;
  779.     CSParam                            csParam;
  780.     ForeignPrivParam                foreignPrivParam;
  781. };
  782. typedef union HParamBlockRec HParamBlockRec;
  783.  
  784. typedef HParamBlockRec *HParmBlkPtr;
  785.  
  786. struct CMovePBRec {
  787.     QElemPtr                        qLink;
  788.     short                            qType;
  789.     short                            ioTrap;
  790.     Ptr                                ioCmdAddr;
  791.     IOCompletionUPP                    ioCompletion;
  792.     OSErr                            ioResult;
  793.     StringPtr                        ioNamePtr;
  794.     short                            ioVRefNum;
  795.     long                            filler1;
  796.     StringPtr                        ioNewName;
  797.     long                            filler2;
  798.     long                            ioNewDirID;
  799.     long                            filler3[2];
  800.     long                            ioDirID;
  801. };
  802. typedef struct CMovePBRec CMovePBRec;
  803.  
  804. typedef CMovePBRec *CMovePBPtr;
  805.  
  806. struct WDPBRec {
  807.     QElemPtr                        qLink;
  808.     short                            qType;
  809.     short                            ioTrap;
  810.     Ptr                                ioCmdAddr;
  811.     IOCompletionUPP                    ioCompletion;
  812.     OSErr                            ioResult;
  813.     StringPtr                        ioNamePtr;
  814.     short                            ioVRefNum;
  815.     short                            filler1;
  816.     short                            ioWDIndex;
  817.     long                            ioWDProcID;
  818.     short                            ioWDVRefNum;
  819.     short                            filler2[7];
  820.     long                            ioWDDirID;
  821. };
  822. typedef struct WDPBRec WDPBRec;
  823.  
  824. typedef WDPBRec *WDPBPtr;
  825.  
  826. struct FCBPBRec {
  827.     QElemPtr                        qLink;
  828.     short                            qType;
  829.     short                            ioTrap;
  830.     Ptr                                ioCmdAddr;
  831.     IOCompletionUPP                    ioCompletion;
  832.     OSErr                            ioResult;
  833.     StringPtr                        ioNamePtr;
  834.     short                            ioVRefNum;
  835.     short                            ioRefNum;
  836.     short                            filler;
  837.     short                            ioFCBIndx;
  838.     short                            filler1;
  839.     long                            ioFCBFlNm;
  840.     short                            ioFCBFlags;
  841.     unsigned short                    ioFCBStBlk;
  842.     long                            ioFCBEOF;
  843.     long                            ioFCBPLen;
  844.     long                            ioFCBCrPs;
  845.     short                            ioFCBVRefNum;
  846.     long                            ioFCBClpSiz;
  847.     long                            ioFCBParID;
  848. };
  849. typedef struct FCBPBRec FCBPBRec;
  850.  
  851. typedef FCBPBRec *FCBPBPtr;
  852.  
  853. struct VCB {
  854.     QElemPtr                        qLink;
  855.     short                            qType;
  856.     short                            vcbFlags;
  857.     unsigned short                    vcbSigWord;
  858.     unsigned long                    vcbCrDate;
  859.     unsigned long                    vcbLsMod;
  860.     short                            vcbAtrb;
  861.     unsigned short                    vcbNmFls;
  862.     short                            vcbVBMSt;
  863.     short                            vcbAllocPtr;
  864.     unsigned short                    vcbNmAlBlks;
  865.     long                            vcbAlBlkSiz;
  866.     long                            vcbClpSiz;
  867.     short                            vcbAlBlSt;
  868.     long                            vcbNxtCNID;
  869.     unsigned short                    vcbFreeBks;
  870.     Str27                            vcbVN;
  871.     short                            vcbDrvNum;
  872.     short                            vcbDRefNum;
  873.     short                            vcbFSID;
  874.     short                            vcbVRefNum;
  875.     Ptr                                vcbMAdr;
  876.     Ptr                                vcbBufAdr;
  877.     short                            vcbMLen;
  878.     short                            vcbDirIndex;
  879.     short                            vcbDirBlk;
  880.     unsigned long                    vcbVolBkUp;
  881.     unsigned short                    vcbVSeqNum;
  882.     long                            vcbWrCnt;
  883.     long                            vcbXTClpSiz;
  884.     long                            vcbCTClpSiz;
  885.     unsigned short                    vcbNmRtDirs;
  886.     long                            vcbFilCnt;
  887.     long                            vcbDirCnt;
  888.     long                            vcbFndrInfo[8];
  889.     unsigned short                    vcbVCSize;
  890.     unsigned short                    vcbVBMCSiz;
  891.     unsigned short                    vcbCtlCSiz;
  892.     unsigned short                    vcbXTAlBlks;
  893.     unsigned short                    vcbCTAlBlks;
  894.     short                            vcbXTRef;
  895.     short                            vcbCTRef;
  896.     Ptr                                vcbCtlBuf;
  897.     long                            vcbDirIDM;
  898.     short                            vcbOffsM;
  899. };
  900. typedef struct VCB VCB;
  901.  
  902. struct DrvQEl {
  903.     QElemPtr                        qLink;
  904.     short                            qType;
  905.     short                            dQDrive;
  906.     short                            dQRefNum;
  907.     short                            dQFSID;
  908.     unsigned short                    dQDrvSz;
  909.     unsigned short                    dQDrvSz2;
  910. };
  911. typedef struct DrvQEl DrvQEl;
  912.  
  913. typedef DrvQEl *DrvQElPtr;
  914.  
  915. enum {
  916.     uppIOCompletionProcInfo = kRegisterBased
  917.          | REGISTER_ROUTINE_PARAMETER(1, kRegisterA0, SIZE_CODE(sizeof(ParmBlkPtr)))
  918. };
  919.  
  920. #if GENERATINGCFM
  921. #define NewIOCompletionProc(userRoutine)        \
  922.         (IOCompletionUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppIOCompletionProcInfo, GetCurrentArchitecture())
  923. #else
  924. #define NewIOCompletionProc(userRoutine)        \
  925.         ((IOCompletionUPP) (userRoutine))
  926. #endif
  927.  
  928. #if GENERATINGCFM
  929. #define CallIOCompletionProc(userRoutine, paramBlock)        \
  930.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppIOCompletionProcInfo, (paramBlock))
  931. #else
  932. /* (*IOCompletionProcPtr) cannot be called from a high-level language without the Mixed Mode Manager */
  933. #endif
  934.  
  935. #define PBOpen(pb, async) ((async) ? PBOpenAsync(pb) : PBOpenSync(pb))
  936.  
  937. #if !GENERATINGCFM
  938. #pragma parameter __D0 PBOpenSync(__A0)
  939. #endif
  940. extern pascal OSErr PBOpenSync(ParmBlkPtr paramBlock)
  941.  ONEWORDINLINE(0xA000);
  942.  
  943. #if !GENERATINGCFM
  944. #pragma parameter __D0 PBOpenAsync(__A0)
  945. #endif
  946. extern pascal OSErr PBOpenAsync(ParmBlkPtr paramBlock)
  947.  ONEWORDINLINE(0xA400);
  948.  
  949. #if !GENERATINGCFM
  950. #pragma parameter __D0 PBOpenImmed(__A0)
  951. #endif
  952. extern pascal OSErr PBOpenImmed(ParmBlkPtr paramBlock)
  953.  ONEWORDINLINE(0xA200);
  954. #define PBClose(pb, async) ((async) ? PBCloseAsync(pb) : PBCloseSync(pb))
  955.  
  956. #if !GENERATINGCFM
  957. #pragma parameter __D0 PBCloseSync(__A0)
  958. #endif
  959. extern pascal OSErr PBCloseSync(ParmBlkPtr paramBlock)
  960.  ONEWORDINLINE(0xA001);
  961.  
  962. #if !GENERATINGCFM
  963. #pragma parameter __D0 PBCloseAsync(__A0)
  964. #endif
  965. extern pascal OSErr PBCloseAsync(ParmBlkPtr paramBlock)
  966.  ONEWORDINLINE(0xA401);
  967.  
  968. #if !GENERATINGCFM
  969. #pragma parameter __D0 PBCloseImmed(__A0)
  970. #endif
  971. extern pascal OSErr PBCloseImmed(ParmBlkPtr paramBlock)
  972.  ONEWORDINLINE(0xA201);
  973. #define PBRead(pb, async) ((async) ? PBReadAsync(pb) : PBReadSync(pb))
  974.  
  975. #if !GENERATINGCFM
  976. #pragma parameter __D0 PBReadSync(__A0)
  977. #endif
  978. extern pascal OSErr PBReadSync(ParmBlkPtr paramBlock)
  979.  ONEWORDINLINE(0xA002);
  980.  
  981. #if !GENERATINGCFM
  982. #pragma parameter __D0 PBReadAsync(__A0)
  983. #endif
  984. extern pascal OSErr PBReadAsync(ParmBlkPtr paramBlock)
  985.  ONEWORDINLINE(0xA402);
  986.  
  987. #if !GENERATINGCFM
  988. #pragma parameter __D0 PBReadImmed(__A0)
  989. #endif
  990. extern pascal OSErr PBReadImmed(ParmBlkPtr paramBlock)
  991.  ONEWORDINLINE(0xA202);
  992. #define PBWrite(pb, async) ((async) ? PBWriteAsync(pb) : PBWriteSync(pb))
  993.  
  994. #if !GENERATINGCFM
  995. #pragma parameter __D0 PBWriteSync(__A0)
  996. #endif
  997. extern pascal OSErr PBWriteSync(ParmBlkPtr paramBlock)
  998.  ONEWORDINLINE(0xA003);
  999.  
  1000. #if !GENERATINGCFM
  1001. #pragma parameter __D0 PBWriteAsync(__A0)
  1002. #endif
  1003. extern pascal OSErr PBWriteAsync(ParmBlkPtr paramBlock)
  1004.  ONEWORDINLINE(0xA403);
  1005.  
  1006. #if !GENERATINGCFM
  1007. #pragma parameter __D0 PBWriteImmed(__A0)
  1008. #endif
  1009. extern pascal OSErr PBWriteImmed(ParmBlkPtr paramBlock)
  1010.  ONEWORDINLINE(0xA203);
  1011. #define PBGetVInfo(pb, async) ((async) ? PBGetVInfoAsync(pb) : PBGetVInfoSync(pb))
  1012.  
  1013. #if !GENERATINGCFM
  1014. #pragma parameter __D0 PBGetVInfoSync(__A0)
  1015. #endif
  1016. extern pascal OSErr PBGetVInfoSync(ParmBlkPtr paramBlock)
  1017.  ONEWORDINLINE(0xA007);
  1018.  
  1019. #if !GENERATINGCFM
  1020. #pragma parameter __D0 PBGetVInfoAsync(__A0)
  1021. #endif
  1022. extern pascal OSErr PBGetVInfoAsync(ParmBlkPtr paramBlock)
  1023.  ONEWORDINLINE(0xA407);
  1024. #define PBGetVol(pb, async) ((async) ? PBGetVolAsync(pb) : PBGetVolSync(pb))
  1025.  
  1026. #if !GENERATINGCFM
  1027. #pragma parameter __D0 PBGetVolSync(__A0)
  1028. #endif
  1029. extern pascal OSErr PBGetVolSync(ParmBlkPtr paramBlock)
  1030.  ONEWORDINLINE(0xA014);
  1031.  
  1032. #if !GENERATINGCFM
  1033. #pragma parameter __D0 PBGetVolAsync(__A0)
  1034. #endif
  1035. extern pascal OSErr PBGetVolAsync(ParmBlkPtr paramBlock)
  1036.  ONEWORDINLINE(0xA414);
  1037. #define PBSetVol(pb, async) ((async) ? PBSetVolAsync(pb) : PBSetVolSync(pb))
  1038.  
  1039. #if !GENERATINGCFM
  1040. #pragma parameter __D0 PBSetVolSync(__A0)
  1041. #endif
  1042. extern pascal OSErr PBSetVolSync(ParmBlkPtr paramBlock)
  1043.  ONEWORDINLINE(0xA015);
  1044.  
  1045. #if !GENERATINGCFM
  1046. #pragma parameter __D0 PBSetVolAsync(__A0)
  1047. #endif
  1048. extern pascal OSErr PBSetVolAsync(ParmBlkPtr paramBlock)
  1049.  ONEWORDINLINE(0xA415);
  1050. #define PBFlushVol(pb, async) ((async) ? PBFlushVolAsync(pb) : PBFlushVolSync(pb))
  1051.  
  1052. #if !GENERATINGCFM
  1053. #pragma parameter __D0 PBFlushVolSync(__A0)
  1054. #endif
  1055. extern pascal OSErr PBFlushVolSync(ParmBlkPtr paramBlock)
  1056.  ONEWORDINLINE(0xA013);
  1057.  
  1058. #if !GENERATINGCFM
  1059. #pragma parameter __D0 PBFlushVolAsync(__A0)
  1060. #endif
  1061. extern pascal OSErr PBFlushVolAsync(ParmBlkPtr paramBlock)
  1062.  ONEWORDINLINE(0xA413);
  1063. #define PBCreate(pb, async) ((async) ? PBCreateAsync(pb) : PBCreateSync(pb))
  1064.  
  1065. #if !GENERATINGCFM
  1066. #pragma parameter __D0 PBCreateSync(__A0)
  1067. #endif
  1068. extern pascal OSErr PBCreateSync(ParmBlkPtr paramBlock)
  1069.  ONEWORDINLINE(0xA008);
  1070.  
  1071. #if !GENERATINGCFM
  1072. #pragma parameter __D0 PBCreateAsync(__A0)
  1073. #endif
  1074. extern pascal OSErr PBCreateAsync(ParmBlkPtr paramBlock)
  1075.  ONEWORDINLINE(0xA408);
  1076. #define PBDelete(pb, async) ((async) ? PBDeleteAsync(pb) : PBDeleteSync(pb))
  1077.  
  1078. #if !GENERATINGCFM
  1079. #pragma parameter __D0 PBDeleteSync(__A0)
  1080. #endif
  1081. extern pascal OSErr PBDeleteSync(ParmBlkPtr paramBlock)
  1082.  ONEWORDINLINE(0xA009);
  1083.  
  1084. #if !GENERATINGCFM
  1085. #pragma parameter __D0 PBDeleteAsync(__A0)
  1086. #endif
  1087. extern pascal OSErr PBDeleteAsync(ParmBlkPtr paramBlock)
  1088.  ONEWORDINLINE(0xA409);
  1089. #define PBOpenDF(pb, async) ((async) ? PBOpenDFAsync(pb) : PBOpenDFSync(pb))
  1090.  
  1091. #if !GENERATINGCFM
  1092. #pragma parameter __D0 PBOpenDFSync(__A0)
  1093. #endif
  1094. extern pascal OSErr PBOpenDFSync(ParmBlkPtr paramBlock)
  1095.  TWOWORDINLINE(0x701A, 0xA060);
  1096.  
  1097. #if !GENERATINGCFM
  1098. #pragma parameter __D0 PBOpenDFAsync(__A0)
  1099. #endif
  1100. extern pascal OSErr PBOpenDFAsync(ParmBlkPtr paramBlock)
  1101.  TWOWORDINLINE(0x701A, 0xA460);
  1102. #define PBOpenRF(pb, async) ((async) ? PBOpenRFAsync(pb) : PBOpenRFSync(pb))
  1103.  
  1104. #if !GENERATINGCFM
  1105. #pragma parameter __D0 PBOpenRFSync(__A0)
  1106. #endif
  1107. extern pascal OSErr PBOpenRFSync(ParmBlkPtr paramBlock)
  1108.  ONEWORDINLINE(0xA00A);
  1109.  
  1110. #if !GENERATINGCFM
  1111. #pragma parameter __D0 PBOpenRFAsync(__A0)
  1112. #endif
  1113. extern pascal OSErr PBOpenRFAsync(ParmBlkPtr paramBlock)
  1114.  ONEWORDINLINE(0xA40A);
  1115. #define PBRename(pb, async) ((async) ? PBRenameAsync(pb) : PBRenameSync(pb))
  1116.  
  1117. #if !GENERATINGCFM
  1118. #pragma parameter __D0 PBRenameSync(__A0)
  1119. #endif
  1120. extern pascal OSErr PBRenameSync(ParmBlkPtr paramBlock)
  1121.  ONEWORDINLINE(0xA00B);
  1122.  
  1123. #if !GENERATINGCFM
  1124. #pragma parameter __D0 PBRenameAsync(__A0)
  1125. #endif
  1126. extern pascal OSErr PBRenameAsync(ParmBlkPtr paramBlock)
  1127.  ONEWORDINLINE(0xA40B);
  1128. #define PBGetFInfo(pb, async) ((async) ? PBGetFInfoAsync(pb) : PBGetFInfoSync(pb))
  1129.  
  1130. #if !GENERATINGCFM
  1131. #pragma parameter __D0 PBGetFInfoSync(__A0)
  1132. #endif
  1133. extern pascal OSErr PBGetFInfoSync(ParmBlkPtr paramBlock)
  1134.  ONEWORDINLINE(0xA00C);
  1135.  
  1136. #if !GENERATINGCFM
  1137. #pragma parameter __D0 PBGetFInfoAsync(__A0)
  1138. #endif
  1139. extern pascal OSErr PBGetFInfoAsync(ParmBlkPtr paramBlock)
  1140.  ONEWORDINLINE(0xA40C);
  1141. #define PBSetFInfo(pb, async) ((async) ? PBSetFInfoAsync(pb) : PBSetFInfoSync(pb))
  1142.  
  1143. #if !GENERATINGCFM
  1144. #pragma parameter __D0 PBSetFInfoSync(__A0)
  1145. #endif
  1146. extern pascal OSErr PBSetFInfoSync(ParmBlkPtr paramBlock)
  1147.  ONEWORDINLINE(0xA00D);
  1148.  
  1149. #if !GENERATINGCFM
  1150. #pragma parameter __D0 PBSetFInfoAsync(__A0)
  1151. #endif
  1152. extern pascal OSErr PBSetFInfoAsync(ParmBlkPtr paramBlock)
  1153.  ONEWORDINLINE(0xA40D);
  1154. #define PBSetFLock(pb, async) ((async) ? PBSetFLockAsync(pb) : PBSetFLockSync(pb))
  1155.  
  1156. #if !GENERATINGCFM
  1157. #pragma parameter __D0 PBSetFLockSync(__A0)
  1158. #endif
  1159. extern pascal OSErr PBSetFLockSync(ParmBlkPtr paramBlock)
  1160.  ONEWORDINLINE(0xA041);
  1161.  
  1162. #if !GENERATINGCFM
  1163. #pragma parameter __D0 PBSetFLockAsync(__A0)
  1164. #endif
  1165. extern pascal OSErr PBSetFLockAsync(ParmBlkPtr paramBlock)
  1166.  ONEWORDINLINE(0xA441);
  1167. #define PBRstFLock(pb, async) ((async) ? PBRstFLockAsync(pb) : PBRstFLockSync(pb))
  1168.  
  1169. #if !GENERATINGCFM
  1170. #pragma parameter __D0 PBRstFLockSync(__A0)
  1171. #endif
  1172. extern pascal OSErr PBRstFLockSync(ParmBlkPtr paramBlock)
  1173.  ONEWORDINLINE(0xA042);
  1174.  
  1175. #if !GENERATINGCFM
  1176. #pragma parameter __D0 PBRstFLockAsync(__A0)
  1177. #endif
  1178. extern pascal OSErr PBRstFLockAsync(ParmBlkPtr paramBlock)
  1179.  ONEWORDINLINE(0xA442);
  1180. #define PBSetFVers(pb, async) ((async) ? PBSetFVersAsync(pb) : PBSetFVersSync(pb))
  1181.  
  1182. #if !GENERATINGCFM
  1183. #pragma parameter __D0 PBSetFVersSync(__A0)
  1184. #endif
  1185. extern pascal OSErr PBSetFVersSync(ParmBlkPtr paramBlock)
  1186.  ONEWORDINLINE(0xA043);
  1187.  
  1188. #if !GENERATINGCFM
  1189. #pragma parameter __D0 PBSetFVersAsync(__A0)
  1190. #endif
  1191. extern pascal OSErr PBSetFVersAsync(ParmBlkPtr paramBlock)
  1192.  ONEWORDINLINE(0xA443);
  1193. #define PBAllocate(pb, async) ((async) ? PBAllocateAsync(pb) : PBAllocateSync(pb))
  1194.  
  1195. #if !GENERATINGCFM
  1196. #pragma parameter __D0 PBAllocateSync(__A0)
  1197. #endif
  1198. extern pascal OSErr PBAllocateSync(ParmBlkPtr paramBlock)
  1199.  ONEWORDINLINE(0xA010);
  1200.  
  1201. #if !GENERATINGCFM
  1202. #pragma parameter __D0 PBAllocateAsync(__A0)
  1203. #endif
  1204. extern pascal OSErr PBAllocateAsync(ParmBlkPtr paramBlock)
  1205.  ONEWORDINLINE(0xA410);
  1206. #define PBGetEOF(pb, async) ((async) ? PBGetEOFAsync(pb) : PBGetEOFSync(pb))
  1207.  
  1208. #if !GENERATINGCFM
  1209. #pragma parameter __D0 PBGetEOFSync(__A0)
  1210. #endif
  1211. extern pascal OSErr PBGetEOFSync(ParmBlkPtr paramBlock)
  1212.  ONEWORDINLINE(0xA011);
  1213.  
  1214. #if !GENERATINGCFM
  1215. #pragma parameter __D0 PBGetEOFAsync(__A0)
  1216. #endif
  1217. extern pascal OSErr PBGetEOFAsync(ParmBlkPtr paramBlock)
  1218.  ONEWORDINLINE(0xA411);
  1219. #define PBSetEOF(pb, async) ((async) ? PBSetEOFAsync(pb) : PBSetEOFSync(pb))
  1220.  
  1221. #if !GENERATINGCFM
  1222. #pragma parameter __D0 PBSetEOFSync(__A0)
  1223. #endif
  1224. extern pascal OSErr PBSetEOFSync(ParmBlkPtr paramBlock)
  1225.  ONEWORDINLINE(0xA012);
  1226.  
  1227. #if !GENERATINGCFM
  1228. #pragma parameter __D0 PBSetEOFAsync(__A0)
  1229. #endif
  1230. extern pascal OSErr PBSetEOFAsync(ParmBlkPtr paramBlock)
  1231.  ONEWORDINLINE(0xA412);
  1232. #define PBGetFPos(pb, async) ((async) ? PBGetFPosAsync(pb) : PBGetFPosSync(pb))
  1233.  
  1234. #if !GENERATINGCFM
  1235. #pragma parameter __D0 PBGetFPosSync(__A0)
  1236. #endif
  1237. extern pascal OSErr PBGetFPosSync(ParmBlkPtr paramBlock)
  1238.  ONEWORDINLINE(0xA018);
  1239.  
  1240. #if !GENERATINGCFM
  1241. #pragma parameter __D0 PBGetFPosAsync(__A0)
  1242. #endif
  1243. extern pascal OSErr PBGetFPosAsync(ParmBlkPtr paramBlock)
  1244.  ONEWORDINLINE(0xA418);
  1245. #define PBSetFPos(pb, async) ((async) ? PBSetFPosAsync(pb) : PBSetFPosSync(pb))
  1246.  
  1247. #if !GENERATINGCFM
  1248. #pragma parameter __D0 PBSetFPosSync(__A0)
  1249. #endif
  1250. extern pascal OSErr PBSetFPosSync(ParmBlkPtr paramBlock)
  1251.  ONEWORDINLINE(0xA044);
  1252.  
  1253. #if !GENERATINGCFM
  1254. #pragma parameter __D0 PBSetFPosAsync(__A0)
  1255. #endif
  1256. extern pascal OSErr PBSetFPosAsync(ParmBlkPtr paramBlock)
  1257.  ONEWORDINLINE(0xA444);
  1258. #define PBFlushFile(pb, async) ((async) ? PBFlushFileAsync(pb) : PBFlushFileSync(pb))
  1259.  
  1260. #if !GENERATINGCFM
  1261. #pragma parameter __D0 PBFlushFileSync(__A0)
  1262. #endif
  1263. extern pascal OSErr PBFlushFileSync(ParmBlkPtr paramBlock)
  1264.  ONEWORDINLINE(0xA045);
  1265.  
  1266. #if !GENERATINGCFM
  1267. #pragma parameter __D0 PBFlushFileAsync(__A0)
  1268. #endif
  1269. extern pascal OSErr PBFlushFileAsync(ParmBlkPtr paramBlock)
  1270.  ONEWORDINLINE(0xA445);
  1271.  
  1272. #if !GENERATINGCFM
  1273. #pragma parameter __D0 PBMountVol(__A0)
  1274. #endif
  1275. extern pascal OSErr PBMountVol(ParmBlkPtr paramBlock)
  1276.  ONEWORDINLINE(0xA00F);
  1277.  
  1278. #if !GENERATINGCFM
  1279. #pragma parameter __D0 PBUnmountVol(__A0)
  1280. #endif
  1281. extern pascal OSErr PBUnmountVol(ParmBlkPtr paramBlock)
  1282.  ONEWORDINLINE(0xA00E);
  1283.  
  1284. #if !GENERATINGCFM
  1285. #pragma parameter __D0 PBEject(__A0)
  1286. #endif
  1287. extern pascal OSErr PBEject(ParmBlkPtr paramBlock)
  1288.  ONEWORDINLINE(0xA017);
  1289.  
  1290. #if !GENERATINGCFM
  1291. #pragma parameter __D0 PBOffLine(__A0)
  1292. #endif
  1293. extern pascal OSErr PBOffLine(ParmBlkPtr paramBlock)
  1294.  ONEWORDINLINE(0xA035);
  1295. #define PBCatSearch(pb, async) ((async) ? PBCatSearchAsync(pb) : PBCatSearchSync(pb))
  1296.  
  1297. #if !GENERATINGCFM
  1298. #pragma parameter __D0 PBCatSearchSync(__A0)
  1299. #endif
  1300. extern pascal OSErr PBCatSearchSync(CSParamPtr paramBlock)
  1301.  TWOWORDINLINE(0x7018, 0xA260);
  1302.  
  1303. #if !GENERATINGCFM
  1304. #pragma parameter __D0 PBCatSearchAsync(__A0)
  1305. #endif
  1306. extern pascal OSErr PBCatSearchAsync(CSParamPtr paramBlock)
  1307.  TWOWORDINLINE(0x7018, 0xA660);
  1308. extern pascal OSErr SetVol(ConstStr63Param volName, short vRefNum);
  1309. extern pascal OSErr UnmountVol(ConstStr63Param volName, short vRefNum);
  1310. extern pascal OSErr Eject(ConstStr63Param volName, short vRefNum);
  1311. extern pascal OSErr FlushVol(ConstStr63Param volName, short vRefNum);
  1312. extern pascal OSErr HSetVol(ConstStr63Param volName, short vRefNum, long dirID);
  1313. extern pascal void AddDrive(short drvrRefNum, short drvNum, DrvQElPtr qEl);
  1314. extern pascal OSErr FSOpen(ConstStr255Param fileName, short vRefNum, short *refNum);
  1315. extern pascal OSErr OpenDF(ConstStr255Param fileName, short vRefNum, short *refNum);
  1316. extern pascal OSErr FSClose(short refNum);
  1317. extern pascal OSErr FSRead(short refNum, long *count, void *buffPtr);
  1318. extern pascal OSErr FSWrite(short refNum, long *count, const void *buffPtr);
  1319. extern pascal OSErr GetVInfo(short drvNum, StringPtr volName, short *vRefNum, long *freeBytes);
  1320. extern pascal OSErr GetFInfo(ConstStr255Param fileName, short vRefNum, FInfo *fndrInfo);
  1321. extern pascal OSErr GetVol(StringPtr volName, short *vRefNum);
  1322. extern pascal OSErr Create(ConstStr255Param fileName, short vRefNum, OSType creator, OSType fileType);
  1323. extern pascal OSErr FSDelete(ConstStr255Param fileName, short vRefNum);
  1324. extern pascal OSErr OpenRF(ConstStr255Param fileName, short vRefNum, short *refNum);
  1325. extern pascal OSErr Rename(ConstStr255Param oldName, short vRefNum, ConstStr255Param newName);
  1326. extern pascal OSErr SetFInfo(ConstStr255Param fileName, short vRefNum, const FInfo *fndrInfo);
  1327. extern pascal OSErr SetFLock(ConstStr255Param fileName, short vRefNum);
  1328. extern pascal OSErr RstFLock(ConstStr255Param fileName, short vRefNum);
  1329. extern pascal OSErr Allocate(short refNum, long *count);
  1330. extern pascal OSErr GetEOF(short refNum, long *logEOF);
  1331. extern pascal OSErr SetEOF(short refNum, long logEOF);
  1332. extern pascal OSErr GetFPos(short refNum, long *filePos);
  1333. extern pascal OSErr SetFPos(short refNum, short posMode, long posOff);
  1334. extern pascal OSErr GetVRefNum(short fileRefNum, short *vRefNum);
  1335. #if CGLUESUPPORTED
  1336. extern OSErr fsopen(const char *fileName, short vRefNum, short *refNum);
  1337. extern OSErr getvinfo(short drvNum, char *volName, short *vRefNum, long *freeBytes);
  1338. extern OSErr getfinfo(const char *fileName, short vRefNum, FInfo *fndrInfo);
  1339. extern OSErr getvol(char *volName, short *vRefNum);
  1340. extern OSErr setvol(const char *volName, short vRefNum);
  1341. extern OSErr unmountvol(const char *volName, short vRefNum);
  1342. extern OSErr eject(const char *volName, short vRefNum);
  1343. extern OSErr flushvol(const char *volName, short vRefNum);
  1344. extern OSErr create(const char *fileName, short vRefNum, OSType creator, OSType fileType);
  1345. extern OSErr fsdelete(const char *fileName, short vRefNum);
  1346. extern OSErr openrf(const char *fileName, short vRefNum, short *refNum);
  1347. extern OSErr fsrename(const char *oldName, short vRefNum, const char *newName);
  1348. extern OSErr setfinfo(const char *fileName, short vRefNum, const FInfo *fndrInfo);
  1349. extern OSErr setflock(const char *fileName, short vRefNum);
  1350. extern OSErr rstflock(const char *fileName, short vRefNum);
  1351. #endif
  1352. #define PBOpenWD(pb, async) ((async) ? PBOpenWDAsync(pb) : PBOpenWDSync(pb))
  1353.  
  1354. #if !GENERATINGCFM
  1355. #pragma parameter __D0 PBOpenWDSync(__A0)
  1356. #endif
  1357. extern pascal OSErr PBOpenWDSync(WDPBPtr paramBlock)
  1358.  TWOWORDINLINE(0x7001, 0xA260);
  1359.  
  1360. #if !GENERATINGCFM
  1361. #pragma parameter __D0 PBOpenWDAsync(__A0)
  1362. #endif
  1363. extern pascal OSErr PBOpenWDAsync(WDPBPtr paramBlock)
  1364.  TWOWORDINLINE(0x7001, 0xA660);
  1365. #define PBCloseWD(pb, async) ((async) ? PBCloseWDAsync(pb) : PBCloseWDSync(pb))
  1366.  
  1367. #if !GENERATINGCFM
  1368. #pragma parameter __D0 PBCloseWDSync(__A0)
  1369. #endif
  1370. extern pascal OSErr PBCloseWDSync(WDPBPtr paramBlock)
  1371.  TWOWORDINLINE(0x7002, 0xA260);
  1372.  
  1373. #if !GENERATINGCFM
  1374. #pragma parameter __D0 PBCloseWDAsync(__A0)
  1375. #endif
  1376. extern pascal OSErr PBCloseWDAsync(WDPBPtr paramBlock)
  1377.  TWOWORDINLINE(0x7002, 0xA660);
  1378. #define PBHSetVol(pb, async) ((async) ? PBHSetVolAsync(pb) : PBHSetVolSync(pb))
  1379.  
  1380. #if !GENERATINGCFM
  1381. #pragma parameter __D0 PBHSetVolSync(__A0)
  1382. #endif
  1383. extern pascal OSErr PBHSetVolSync(WDPBPtr paramBlock)
  1384.  ONEWORDINLINE(0xA215);
  1385.  
  1386. #if !GENERATINGCFM
  1387. #pragma parameter __D0 PBHSetVolAsync(__A0)
  1388. #endif
  1389. extern pascal OSErr PBHSetVolAsync(WDPBPtr paramBlock)
  1390.  ONEWORDINLINE(0xA615);
  1391. #define PBHGetVol(pb, async) ((async) ? PBHGetVolAsync(pb) : PBHGetVolSync(pb))
  1392.  
  1393. #if !GENERATINGCFM
  1394. #pragma parameter __D0 PBHGetVolSync(__A0)
  1395. #endif
  1396. extern pascal OSErr PBHGetVolSync(WDPBPtr paramBlock)
  1397.  ONEWORDINLINE(0xA214);
  1398.  
  1399. #if !GENERATINGCFM
  1400. #pragma parameter __D0 PBHGetVolAsync(__A0)
  1401. #endif
  1402. extern pascal OSErr PBHGetVolAsync(WDPBPtr paramBlock)
  1403.  ONEWORDINLINE(0xA614);
  1404. #define PBCatMove(pb, async) ((async) ? PBCatMoveAsync(pb) : PBCatMoveSync(pb))
  1405.  
  1406. #if !GENERATINGCFM
  1407. #pragma parameter __D0 PBCatMoveSync(__A0)
  1408. #endif
  1409. extern pascal OSErr PBCatMoveSync(CMovePBPtr paramBlock)
  1410.  TWOWORDINLINE(0x7005, 0xA260);
  1411.  
  1412. #if !GENERATINGCFM
  1413. #pragma parameter __D0 PBCatMoveAsync(__A0)
  1414. #endif
  1415. extern pascal OSErr PBCatMoveAsync(CMovePBPtr paramBlock)
  1416.  TWOWORDINLINE(0x7005, 0xA660);
  1417. #define PBDirCreate(pb, async) ((async) ? PBDirCreateAsync(pb) : PBDirCreateSync(pb))
  1418.  
  1419. #if !GENERATINGCFM
  1420. #pragma parameter __D0 PBDirCreateSync(__A0)
  1421. #endif
  1422. extern pascal OSErr PBDirCreateSync(HParmBlkPtr paramBlock)
  1423.  TWOWORDINLINE(0x7006, 0xA260);
  1424.  
  1425. #if !GENERATINGCFM
  1426. #pragma parameter __D0 PBDirCreateAsync(__A0)
  1427. #endif
  1428. extern pascal OSErr PBDirCreateAsync(HParmBlkPtr paramBlock)
  1429.  TWOWORDINLINE(0x7006, 0xA660);
  1430. #define PBGetWDInfo(pb, async) ((async) ? PBGetWDInfoAsync(pb) : PBGetWDInfoSync(pb))
  1431.  
  1432. #if !GENERATINGCFM
  1433. #pragma parameter __D0 PBGetWDInfoSync(__A0)
  1434. #endif
  1435. extern pascal OSErr PBGetWDInfoSync(WDPBPtr paramBlock)
  1436.  TWOWORDINLINE(0x7007, 0xA260);
  1437.  
  1438. #if !GENERATINGCFM
  1439. #pragma parameter __D0 PBGetWDInfoAsync(__A0)
  1440. #endif
  1441. extern pascal OSErr PBGetWDInfoAsync(WDPBPtr paramBlock)
  1442.  TWOWORDINLINE(0x7007, 0xA660);
  1443. #define PBGetFCBInfo(pb, async) ((async) ? PBGetFCBInfoAsync(pb) : PBGetFCBInfoSync(pb))
  1444.  
  1445. #if !GENERATINGCFM
  1446. #pragma parameter __D0 PBGetFCBInfoSync(__A0)
  1447. #endif
  1448. extern pascal OSErr PBGetFCBInfoSync(FCBPBPtr paramBlock)
  1449.  TWOWORDINLINE(0x7008, 0xA260);
  1450.  
  1451. #if !GENERATINGCFM
  1452. #pragma parameter __D0 PBGetFCBInfoAsync(__A0)
  1453. #endif
  1454. extern pascal OSErr PBGetFCBInfoAsync(FCBPBPtr paramBlock)
  1455.  TWOWORDINLINE(0x7008, 0xA660);
  1456. #define PBGetCatInfo(pb, async) ((async) ? PBGetCatInfoAsync(pb) : PBGetCatInfoSync(pb))
  1457.  
  1458. #if !GENERATINGCFM
  1459. #pragma parameter __D0 PBGetCatInfoSync(__A0)
  1460. #endif
  1461. extern pascal OSErr PBGetCatInfoSync(CInfoPBPtr paramBlock)
  1462.  TWOWORDINLINE(0x7009, 0xA260);
  1463.  
  1464. #if !GENERATINGCFM
  1465. #pragma parameter __D0 PBGetCatInfoAsync(__A0)
  1466. #endif
  1467. extern pascal OSErr PBGetCatInfoAsync(CInfoPBPtr paramBlock)
  1468.  TWOWORDINLINE(0x7009, 0xA660);
  1469. #define PBSetCatInfo(pb, async) ((async) ? PBSetCatInfoAsync(pb) : PBSetCatInfoSync(pb))
  1470.  
  1471. #if !GENERATINGCFM
  1472. #pragma parameter __D0 PBSetCatInfoSync(__A0)
  1473. #endif
  1474. extern pascal OSErr PBSetCatInfoSync(CInfoPBPtr paramBlock)
  1475.  TWOWORDINLINE(0x700A, 0xA260);
  1476.  
  1477. #if !GENERATINGCFM
  1478. #pragma parameter __D0 PBSetCatInfoAsync(__A0)
  1479. #endif
  1480. extern pascal OSErr PBSetCatInfoAsync(CInfoPBPtr paramBlock)
  1481.  TWOWORDINLINE(0x700A, 0xA660);
  1482. #define PBAllocContig(pb, async) ((async) ? PBAllocContigAsync(pb) : PBAllocContigSync(pb))
  1483.  
  1484. #if !GENERATINGCFM
  1485. #pragma parameter __D0 PBAllocContigSync(__A0)
  1486. #endif
  1487. extern pascal OSErr PBAllocContigSync(ParmBlkPtr paramBlock)
  1488.  ONEWORDINLINE(0xA210);
  1489.  
  1490. #if !GENERATINGCFM
  1491. #pragma parameter __D0 PBAllocContigAsync(__A0)
  1492. #endif
  1493. extern pascal OSErr PBAllocContigAsync(ParmBlkPtr paramBlock)
  1494.  ONEWORDINLINE(0xA610);
  1495. #define PBLockRange(pb, async) ((async) ? PBLockRangeAsync(pb) : PBLockRangeSync(pb))
  1496.  
  1497. #if !GENERATINGCFM
  1498. #pragma parameter __D0 PBLockRangeSync(__A0)
  1499. #endif
  1500. extern pascal OSErr PBLockRangeSync(ParmBlkPtr paramBlock)
  1501.  TWOWORDINLINE(0x7010, 0xA260);
  1502.  
  1503. #if !GENERATINGCFM
  1504. #pragma parameter __D0 PBLockRangeAsync(__A0)
  1505. #endif
  1506. extern pascal OSErr PBLockRangeAsync(ParmBlkPtr paramBlock)
  1507.  TWOWORDINLINE(0x7010, 0xA660);
  1508. #define PBUnlockRange(pb, async) ((async) ? PBUnlockRangeAsync(pb) : PBUnlockRangeSync(pb))
  1509.  
  1510. #if !GENERATINGCFM
  1511. #pragma parameter __D0 PBUnlockRangeSync(__A0)
  1512. #endif
  1513. extern pascal OSErr PBUnlockRangeSync(ParmBlkPtr paramBlock)
  1514.  TWOWORDINLINE(0x7011, 0xA260);
  1515.  
  1516. #if !GENERATINGCFM
  1517. #pragma parameter __D0 PBUnlockRangeAsync(__A0)
  1518. #endif
  1519. extern pascal OSErr PBUnlockRangeAsync(ParmBlkPtr paramBlock)
  1520.  TWOWORDINLINE(0x7011, 0xA660);
  1521. #define PBSetVInfo(pb, async) ((async) ? PBSetVInfoAsync(pb) : PBSetVInfoSync(pb))
  1522.  
  1523. #if !GENERATINGCFM
  1524. #pragma parameter __D0 PBSetVInfoSync(__A0)
  1525. #endif
  1526. extern pascal OSErr PBSetVInfoSync(HParmBlkPtr paramBlock)
  1527.  TWOWORDINLINE(0x700B, 0xA260);
  1528.  
  1529. #if !GENERATINGCFM
  1530. #pragma parameter __D0 PBSetVInfoAsync(__A0)
  1531. #endif
  1532. extern pascal OSErr PBSetVInfoAsync(HParmBlkPtr paramBlock)
  1533.  TWOWORDINLINE(0x700B, 0xA660);
  1534. #define PBHGetVInfo(pb, async) ((async) ? PBHGetVInfoAsync(pb) : PBHGetVInfoSync(pb))
  1535.  
  1536. #if !GENERATINGCFM
  1537. #pragma parameter __D0 PBHGetVInfoSync(__A0)
  1538. #endif
  1539. extern pascal OSErr PBHGetVInfoSync(HParmBlkPtr paramBlock)
  1540.  ONEWORDINLINE(0xA207);
  1541.  
  1542. #if !GENERATINGCFM
  1543. #pragma parameter __D0 PBHGetVInfoAsync(__A0)
  1544. #endif
  1545. extern pascal OSErr PBHGetVInfoAsync(HParmBlkPtr paramBlock)
  1546.  ONEWORDINLINE(0xA607);
  1547. #define PBHOpen(pb, async) ((async) ? PBHOpenAsync(pb) : PBHOpenSync(pb))
  1548.  
  1549. #if !GENERATINGCFM
  1550. #pragma parameter __D0 PBHOpenSync(__A0)
  1551. #endif
  1552. extern pascal OSErr PBHOpenSync(HParmBlkPtr paramBlock)
  1553.  ONEWORDINLINE(0xA200);
  1554.  
  1555. #if !GENERATINGCFM
  1556. #pragma parameter __D0 PBHOpenAsync(__A0)
  1557. #endif
  1558. extern pascal OSErr PBHOpenAsync(HParmBlkPtr paramBlock)
  1559.  ONEWORDINLINE(0xA600);
  1560. #define PBHOpenRF(pb, async) ((async) ? PBHOpenRFAsync(pb) : PBHOpenRFSync(pb))
  1561.  
  1562. #if !GENERATINGCFM
  1563. #pragma parameter __D0 PBHOpenRFSync(__A0)
  1564. #endif
  1565. extern pascal OSErr PBHOpenRFSync(HParmBlkPtr paramBlock)
  1566.  ONEWORDINLINE(0xA20A);
  1567.  
  1568. #if !GENERATINGCFM
  1569. #pragma parameter __D0 PBHOpenRFAsync(__A0)
  1570. #endif
  1571. extern pascal OSErr PBHOpenRFAsync(HParmBlkPtr paramBlock)
  1572.  ONEWORDINLINE(0xA60A);
  1573. #define PBHOpenDF(pb, async) ((async) ? PBHOpenDFAsync(pb) : PBHOpenDFSync(pb))
  1574.  
  1575. #if !GENERATINGCFM
  1576. #pragma parameter __D0 PBHOpenDFSync(__A0)
  1577. #endif
  1578. extern pascal OSErr PBHOpenDFSync(HParmBlkPtr paramBlock)
  1579.  TWOWORDINLINE(0x701A, 0xA260);
  1580.  
  1581. #if !GENERATINGCFM
  1582. #pragma parameter __D0 PBHOpenDFAsync(__A0)
  1583. #endif
  1584. extern pascal OSErr PBHOpenDFAsync(HParmBlkPtr paramBlock)
  1585.  TWOWORDINLINE(0x701A, 0xA660);
  1586. #define PBHCreate(pb, async) ((async) ? PBHCreateAsync(pb) : PBHCreateSync(pb))
  1587.  
  1588. #if !GENERATINGCFM
  1589. #pragma parameter __D0 PBHCreateSync(__A0)
  1590. #endif
  1591. extern pascal OSErr PBHCreateSync(HParmBlkPtr paramBlock)
  1592.  ONEWORDINLINE(0xA208);
  1593.  
  1594. #if !GENERATINGCFM
  1595. #pragma parameter __D0 PBHCreateAsync(__A0)
  1596. #endif
  1597. extern pascal OSErr PBHCreateAsync(HParmBlkPtr paramBlock)
  1598.  ONEWORDINLINE(0xA608);
  1599. #define PBHDelete(pb, async) ((async) ? PBHDeleteAsync(pb) : PBHDeleteSync(pb))
  1600.  
  1601. #if !GENERATINGCFM
  1602. #pragma parameter __D0 PBHDeleteSync(__A0)
  1603. #endif
  1604. extern pascal OSErr PBHDeleteSync(HParmBlkPtr paramBlock)
  1605.  ONEWORDINLINE(0xA209);
  1606.  
  1607. #if !GENERATINGCFM
  1608. #pragma parameter __D0 PBHDeleteAsync(__A0)
  1609. #endif
  1610. extern pascal OSErr PBHDeleteAsync(HParmBlkPtr paramBlock)
  1611.  ONEWORDINLINE(0xA609);
  1612. #define PBHRename(pb, async) ((async) ? PBHRenameAsync(pb) : PBHRenameSync(pb))
  1613.  
  1614. #if !GENERATINGCFM
  1615. #pragma parameter __D0 PBHRenameSync(__A0)
  1616. #endif
  1617. extern pascal OSErr PBHRenameSync(HParmBlkPtr paramBlock)
  1618.  ONEWORDINLINE(0xA20B);
  1619.  
  1620. #if !GENERATINGCFM
  1621. #pragma parameter __D0 PBHRenameAsync(__A0)
  1622. #endif
  1623. extern pascal OSErr PBHRenameAsync(HParmBlkPtr paramBlock)
  1624.  ONEWORDINLINE(0xA60B);
  1625. #define PBHRstFLock(pb, async) ((async) ? PBHRstFLockAsync(pb) : PBHRstFLockSync(pb))
  1626.  
  1627. #if !GENERATINGCFM
  1628. #pragma parameter __D0 PBHRstFLockSync(__A0)
  1629. #endif
  1630. extern pascal OSErr PBHRstFLockSync(HParmBlkPtr paramBlock)
  1631.  ONEWORDINLINE(0xA242);
  1632.  
  1633. #if !GENERATINGCFM
  1634. #pragma parameter __D0 PBHRstFLockAsync(__A0)
  1635. #endif
  1636. extern pascal OSErr PBHRstFLockAsync(HParmBlkPtr paramBlock)
  1637.  ONEWORDINLINE(0xA642);
  1638. #define PBHSetFLock(pb, async) ((async) ? PBHSetFLockAsync(pb) : PBHSetFLockSync(pb))
  1639.  
  1640. #if !GENERATINGCFM
  1641. #pragma parameter __D0 PBHSetFLockSync(__A0)
  1642. #endif
  1643. extern pascal OSErr PBHSetFLockSync(HParmBlkPtr paramBlock)
  1644.  ONEWORDINLINE(0xA241);
  1645.  
  1646. #if !GENERATINGCFM
  1647. #pragma parameter __D0 PBHSetFLockAsync(__A0)
  1648. #endif
  1649. extern pascal OSErr PBHSetFLockAsync(HParmBlkPtr paramBlock)
  1650.  ONEWORDINLINE(0xA641);
  1651. #define PBHGetFInfo(pb, async) ((async) ? PBHGetFInfoAsync(pb) : PBHGetFInfoSync(pb))
  1652.  
  1653. #if !GENERATINGCFM
  1654. #pragma parameter __D0 PBHGetFInfoSync(__A0)
  1655. #endif
  1656. extern pascal OSErr PBHGetFInfoSync(HParmBlkPtr paramBlock)
  1657.  ONEWORDINLINE(0xA20C);
  1658.  
  1659. #if !GENERATINGCFM
  1660. #pragma parameter __D0 PBHGetFInfoAsync(__A0)
  1661. #endif
  1662. extern pascal OSErr PBHGetFInfoAsync(HParmBlkPtr paramBlock)
  1663.  ONEWORDINLINE(0xA60C);
  1664. #define PBHSetFInfo(pb, async) ((async) ? PBHSetFInfoAsync(pb) : PBHSetFInfoSync(pb))
  1665.  
  1666. #if !GENERATINGCFM
  1667. #pragma parameter __D0 PBHSetFInfoSync(__A0)
  1668. #endif
  1669. extern pascal OSErr PBHSetFInfoSync(HParmBlkPtr paramBlock)
  1670.  ONEWORDINLINE(0xA20D);
  1671.  
  1672. #if !GENERATINGCFM
  1673. #pragma parameter __D0 PBHSetFInfoAsync(__A0)
  1674. #endif
  1675. extern pascal OSErr PBHSetFInfoAsync(HParmBlkPtr paramBlock)
  1676.  ONEWORDINLINE(0xA60D);
  1677. #define PBMakeFSSpec(pb, async) ((async) ? PBMakeFSSpecAsync(pb) : PBMakeFSSpecSync(pb))
  1678.  
  1679. #if !GENERATINGCFM
  1680. #pragma parameter __D0 PBMakeFSSpecSync(__A0)
  1681. #endif
  1682. extern pascal OSErr PBMakeFSSpecSync(HParmBlkPtr paramBlock)
  1683.  TWOWORDINLINE(0x701B, 0xA260);
  1684.  
  1685. #if !GENERATINGCFM
  1686. #pragma parameter __D0 PBMakeFSSpecAsync(__A0)
  1687. #endif
  1688. extern pascal OSErr PBMakeFSSpecAsync(HParmBlkPtr paramBlock)
  1689.  TWOWORDINLINE(0x701B, 0xA660);
  1690. extern pascal void FInitQueue(void)
  1691.  ONEWORDINLINE(0xA016);
  1692. extern pascal QHdrPtr GetFSQHdr(void)
  1693.  THREEWORDINLINE(0x2EBC, 0x0000, 0x0360);
  1694. extern pascal QHdrPtr GetDrvQHdr(void)
  1695.  THREEWORDINLINE(0x2EBC, 0x0000, 0x0308);
  1696. extern pascal QHdrPtr GetVCBQHdr(void)
  1697.  THREEWORDINLINE(0x2EBC, 0x0000, 0x0356);
  1698. extern pascal OSErr HGetVol(StringPtr volName, short *vRefNum, long *dirID);
  1699. extern pascal OSErr HOpen(short vRefNum, long dirID, ConstStr255Param fileName, SInt8 permission, short *refNum);
  1700. extern pascal OSErr HOpenDF(short vRefNum, long dirID, ConstStr255Param fileName, SInt8 permission, short *refNum);
  1701. extern pascal OSErr HOpenRF(short vRefNum, long dirID, ConstStr255Param fileName, SInt8 permission, short *refNum);
  1702. extern pascal OSErr AllocContig(short refNum, long *count);
  1703. extern pascal OSErr HCreate(short vRefNum, long dirID, ConstStr255Param fileName, OSType creator, OSType fileType);
  1704. extern pascal OSErr DirCreate(short vRefNum, long parentDirID, ConstStr255Param directoryName, long *createdDirID);
  1705. extern pascal OSErr HDelete(short vRefNum, long dirID, ConstStr255Param fileName);
  1706. extern pascal OSErr HGetFInfo(short vRefNum, long dirID, ConstStr255Param fileName, FInfo *fndrInfo);
  1707. extern pascal OSErr HSetFInfo(short vRefNum, long dirID, ConstStr255Param fileName, const FInfo *fndrInfo);
  1708. extern pascal OSErr HSetFLock(short vRefNum, long dirID, ConstStr255Param fileName);
  1709. extern pascal OSErr HRstFLock(short vRefNum, long dirID, ConstStr255Param fileName);
  1710. extern pascal OSErr HRename(short vRefNum, long dirID, ConstStr255Param oldName, ConstStr255Param newName);
  1711. extern pascal OSErr CatMove(short vRefNum, long dirID, ConstStr255Param oldName, long newDirID, ConstStr255Param newName);
  1712. extern pascal OSErr OpenWD(short vRefNum, long dirID, long procID, short *wdRefNum);
  1713. extern pascal OSErr CloseWD(short wdRefNum);
  1714. extern pascal OSErr GetWDInfo(short wdRefNum, short *vRefNum, long *dirID, long *procID);
  1715. /*  shared environment  */
  1716. #define PBHGetVolParms(pb, async) ((async) ? PBHGetVolParmsAsync(pb) : PBHGetVolParmsSync(pb))
  1717.  
  1718. #if !GENERATINGCFM
  1719. #pragma parameter __D0 PBHGetVolParmsSync(__A0)
  1720. #endif
  1721. extern pascal OSErr PBHGetVolParmsSync(HParmBlkPtr paramBlock)
  1722.  TWOWORDINLINE(0x7030, 0xA260);
  1723.  
  1724. #if !GENERATINGCFM
  1725. #pragma parameter __D0 PBHGetVolParmsAsync(__A0)
  1726. #endif
  1727. extern pascal OSErr PBHGetVolParmsAsync(HParmBlkPtr paramBlock)
  1728.  TWOWORDINLINE(0x7030, 0xA660);
  1729. #define PBHGetLogInInfo(pb, async) ((async) ? PBHGetLogInInfoAsync(pb) : PBHGetLogInInfoSync(pb))
  1730.  
  1731. #if !GENERATINGCFM
  1732. #pragma parameter __D0 PBHGetLogInInfoSync(__A0)
  1733. #endif
  1734. extern pascal OSErr PBHGetLogInInfoSync(HParmBlkPtr paramBlock)
  1735.  TWOWORDINLINE(0x7031, 0xA260);
  1736.  
  1737. #if !GENERATINGCFM
  1738. #pragma parameter __D0 PBHGetLogInInfoAsync(__A0)
  1739. #endif
  1740. extern pascal OSErr PBHGetLogInInfoAsync(HParmBlkPtr paramBlock)
  1741.  TWOWORDINLINE(0x7031, 0xA660);
  1742. #define PBHGetDirAccess(pb, async) ((async) ? PBHGetDirAccessAsync(pb) : PBHGetDirAccessSync(pb))
  1743.  
  1744. #if !GENERATINGCFM
  1745. #pragma parameter __D0 PBHGetDirAccessSync(__A0)
  1746. #endif
  1747. extern pascal OSErr PBHGetDirAccessSync(HParmBlkPtr paramBlock)
  1748.  TWOWORDINLINE(0x7032, 0xA260);
  1749.  
  1750. #if !GENERATINGCFM
  1751. #pragma parameter __D0 PBHGetDirAccessAsync(__A0)
  1752. #endif
  1753. extern pascal OSErr PBHGetDirAccessAsync(HParmBlkPtr paramBlock)
  1754.  TWOWORDINLINE(0x7032, 0xA660);
  1755. #define PBHSetDirAccess(pb, async) ((async) ? PBHSetDirAccessAsync(pb) : PBHSetDirAccessSync(pb))
  1756.  
  1757. #if !GENERATINGCFM
  1758. #pragma parameter __D0 PBHSetDirAccessSync(__A0)
  1759. #endif
  1760. extern pascal OSErr PBHSetDirAccessSync(HParmBlkPtr paramBlock)
  1761.  TWOWORDINLINE(0x7033, 0xA260);
  1762.  
  1763. #if !GENERATINGCFM
  1764. #pragma parameter __D0 PBHSetDirAccessAsync(__A0)
  1765. #endif
  1766. extern pascal OSErr PBHSetDirAccessAsync(HParmBlkPtr paramBlock)
  1767.  TWOWORDINLINE(0x7033, 0xA660);
  1768. #define PBHMapID(pb, async) ((async) ? PBHMapIDAsync(pb) : PBHMapIDSync(pb))
  1769.  
  1770. #if !GENERATINGCFM
  1771. #pragma parameter __D0 PBHMapIDSync(__A0)
  1772. #endif
  1773. extern pascal OSErr PBHMapIDSync(HParmBlkPtr paramBlock)
  1774.  TWOWORDINLINE(0x7034, 0xA260);
  1775.  
  1776. #if !GENERATINGCFM
  1777. #pragma parameter __D0 PBHMapIDAsync(__A0)
  1778. #endif
  1779. extern pascal OSErr PBHMapIDAsync(HParmBlkPtr paramBlock)
  1780.  TWOWORDINLINE(0x7034, 0xA660);
  1781. #define PBHMapName(pb, async) ((async) ? PBHMapNameAsync(pb) : PBHMapNameSync(pb))
  1782.  
  1783. #if !GENERATINGCFM
  1784. #pragma parameter __D0 PBHMapNameSync(__A0)
  1785. #endif
  1786. extern pascal OSErr PBHMapNameSync(HParmBlkPtr paramBlock)
  1787.  TWOWORDINLINE(0x7035, 0xA260);
  1788.  
  1789. #if !GENERATINGCFM
  1790. #pragma parameter __D0 PBHMapNameAsync(__A0)
  1791. #endif
  1792. extern pascal OSErr PBHMapNameAsync(HParmBlkPtr paramBlock)
  1793.  TWOWORDINLINE(0x7035, 0xA660);
  1794. #define PBHCopyFile(pb, async) ((async) ? PBHCopyFileAsync(pb) : PBHCopyFileSync(pb))
  1795.  
  1796. #if !GENERATINGCFM
  1797. #pragma parameter __D0 PBHCopyFileSync(__A0)
  1798. #endif
  1799. extern pascal OSErr PBHCopyFileSync(HParmBlkPtr paramBlock)
  1800.  TWOWORDINLINE(0x7036, 0xA260);
  1801.  
  1802. #if !GENERATINGCFM
  1803. #pragma parameter __D0 PBHCopyFileAsync(__A0)
  1804. #endif
  1805. extern pascal OSErr PBHCopyFileAsync(HParmBlkPtr paramBlock)
  1806.  TWOWORDINLINE(0x7036, 0xA660);
  1807. #define PBHMoveRename(pb, async) ((async) ? PBHMoveRenameAsync(pb) : PBHMoveRenameSync(pb))
  1808.  
  1809. #if !GENERATINGCFM
  1810. #pragma parameter __D0 PBHMoveRenameSync(__A0)
  1811. #endif
  1812. extern pascal OSErr PBHMoveRenameSync(HParmBlkPtr paramBlock)
  1813.  TWOWORDINLINE(0x7037, 0xA260);
  1814.  
  1815. #if !GENERATINGCFM
  1816. #pragma parameter __D0 PBHMoveRenameAsync(__A0)
  1817. #endif
  1818. extern pascal OSErr PBHMoveRenameAsync(HParmBlkPtr paramBlock)
  1819.  TWOWORDINLINE(0x7037, 0xA660);
  1820. #define PBHOpenDeny(pb, async) ((async) ? PBHOpenDenyAsync(pb) : PBHOpenDenySync(pb))
  1821.  
  1822. #if !GENERATINGCFM
  1823. #pragma parameter __D0 PBHOpenDenySync(__A0)
  1824. #endif
  1825. extern pascal OSErr PBHOpenDenySync(HParmBlkPtr paramBlock)
  1826.  TWOWORDINLINE(0x7038, 0xA260);
  1827.  
  1828. #if !GENERATINGCFM
  1829. #pragma parameter __D0 PBHOpenDenyAsync(__A0)
  1830. #endif
  1831. extern pascal OSErr PBHOpenDenyAsync(HParmBlkPtr paramBlock)
  1832.  TWOWORDINLINE(0x7038, 0xA660);
  1833. #define PBHOpenRFDeny(pb, async) ((async) ? PBHOpenRFDenyAsync(pb) : PBHOpenRFDenySync(pb))
  1834.  
  1835. #if !GENERATINGCFM
  1836. #pragma parameter __D0 PBHOpenRFDenySync(__A0)
  1837. #endif
  1838. extern pascal OSErr PBHOpenRFDenySync(HParmBlkPtr paramBlock)
  1839.  TWOWORDINLINE(0x7039, 0xA260);
  1840.  
  1841. #if !GENERATINGCFM
  1842. #pragma parameter __D0 PBHOpenRFDenyAsync(__A0)
  1843. #endif
  1844. extern pascal OSErr PBHOpenRFDenyAsync(HParmBlkPtr paramBlock)
  1845.  TWOWORDINLINE(0x7039, 0xA660);
  1846. #define PBExchangeFiles(pb, async) ((async) ? PBExchangeFilesAsync(pb) : PBExchangeFilesSync(pb))
  1847.  
  1848. #if !GENERATINGCFM
  1849. #pragma parameter __D0 PBExchangeFilesSync(__A0)
  1850. #endif
  1851. extern pascal OSErr PBExchangeFilesSync(HParmBlkPtr paramBlock)
  1852.  TWOWORDINLINE(0x7017, 0xA260);
  1853.  
  1854. #if !GENERATINGCFM
  1855. #pragma parameter __D0 PBExchangeFilesAsync(__A0)
  1856. #endif
  1857. extern pascal OSErr PBExchangeFilesAsync(HParmBlkPtr paramBlock)
  1858.  TWOWORDINLINE(0x7017, 0xA660);
  1859. #define PBCreateFileIDRef(pb, async) ((async) ? PBCreateFileIDRefAsync(pb) : PBCreateFileIDRefSync(pb))
  1860.  
  1861. #if !GENERATINGCFM
  1862. #pragma parameter __D0 PBCreateFileIDRefSync(__A0)
  1863. #endif
  1864. extern pascal OSErr PBCreateFileIDRefSync(HParmBlkPtr paramBlock)
  1865.  TWOWORDINLINE(0x7014, 0xA260);
  1866.  
  1867. #if !GENERATINGCFM
  1868. #pragma parameter __D0 PBCreateFileIDRefAsync(__A0)
  1869. #endif
  1870. extern pascal OSErr PBCreateFileIDRefAsync(HParmBlkPtr paramBlock)
  1871.  TWOWORDINLINE(0x7014, 0xA660);
  1872. #define PBResolveFileIDRef(pb, async) ((async) ? PBResolveFileIDRefAsync(pb) : PBResolveFileIDRefSync(pb))
  1873.  
  1874. #if !GENERATINGCFM
  1875. #pragma parameter __D0 PBResolveFileIDRefSync(__A0)
  1876. #endif
  1877. extern pascal OSErr PBResolveFileIDRefSync(HParmBlkPtr paramBlock)
  1878.  TWOWORDINLINE(0x7016, 0xA260);
  1879.  
  1880. #if !GENERATINGCFM
  1881. #pragma parameter __D0 PBResolveFileIDRefAsync(__A0)
  1882. #endif
  1883. extern pascal OSErr PBResolveFileIDRefAsync(HParmBlkPtr paramBlock)
  1884.  TWOWORDINLINE(0x7016, 0xA660);
  1885. #define PBDeleteFileIDRef(pb, async) ((async) ? PBDeleteFileIDRefAsync(pb) : PBDeleteFileIDRefSync(pb))
  1886.  
  1887. #if !GENERATINGCFM
  1888. #pragma parameter __D0 PBDeleteFileIDRefSync(__A0)
  1889. #endif
  1890. extern pascal OSErr PBDeleteFileIDRefSync(HParmBlkPtr paramBlock)
  1891.  TWOWORDINLINE(0x7015, 0xA260);
  1892.  
  1893. #if !GENERATINGCFM
  1894. #pragma parameter __D0 PBDeleteFileIDRefAsync(__A0)
  1895. #endif
  1896. extern pascal OSErr PBDeleteFileIDRefAsync(HParmBlkPtr paramBlock)
  1897.  TWOWORDINLINE(0x7015, 0xA660);
  1898. #define PBGetForeignPrivs(pb, async) ((async) ? PBGetForeignPrivsAsync(pb) : PBGetForeignPrivsSync(pb))
  1899.  
  1900. #if !GENERATINGCFM
  1901. #pragma parameter __D0 PBGetForeignPrivsSync(__A0)
  1902. #endif
  1903. extern pascal OSErr PBGetForeignPrivsSync(HParmBlkPtr paramBlock)
  1904.  TWOWORDINLINE(0x7060, 0xA260);
  1905.  
  1906. #if !GENERATINGCFM
  1907. #pragma parameter __D0 PBGetForeignPrivsAsync(__A0)
  1908. #endif
  1909. extern pascal OSErr PBGetForeignPrivsAsync(HParmBlkPtr paramBlock)
  1910.  TWOWORDINLINE(0x7060, 0xA660);
  1911. #define PBSetForeignPrivs(pb, async) ((async) ? PBSetForeignPrivsAsync(pb) : PBSetForeignPrivsSync(pb))
  1912.  
  1913. #if !GENERATINGCFM
  1914. #pragma parameter __D0 PBSetForeignPrivsSync(__A0)
  1915. #endif
  1916. extern pascal OSErr PBSetForeignPrivsSync(HParmBlkPtr paramBlock)
  1917.  TWOWORDINLINE(0x7061, 0xA260);
  1918.  
  1919. #if !GENERATINGCFM
  1920. #pragma parameter __D0 PBSetForeignPrivsAsync(__A0)
  1921. #endif
  1922. extern pascal OSErr PBSetForeignPrivsAsync(HParmBlkPtr paramBlock)
  1923.  TWOWORDINLINE(0x7061, 0xA660);
  1924. /*  Desktop Manager  */
  1925.  
  1926. #if !GENERATINGCFM
  1927. #pragma parameter __D0 PBDTGetPath(__A0)
  1928. #endif
  1929. extern pascal OSErr PBDTGetPath(DTPBPtr paramBlock)
  1930.  TWOWORDINLINE(0x7020, 0xA260);
  1931.  
  1932. #if !GENERATINGCFM
  1933. #pragma parameter __D0 PBDTCloseDown(__A0)
  1934. #endif
  1935. extern pascal OSErr PBDTCloseDown(DTPBPtr paramBlock)
  1936.  TWOWORDINLINE(0x7021, 0xA260);
  1937. #define PBDTAddIcon(pb, async) ((async) ? PBDTAddIconAsync(pb) : PBDTAddIconSync(pb))
  1938.  
  1939. #if !GENERATINGCFM
  1940. #pragma parameter __D0 PBDTAddIconSync(__A0)
  1941. #endif
  1942. extern pascal OSErr PBDTAddIconSync(DTPBPtr paramBlock)
  1943.  TWOWORDINLINE(0x7022, 0xA260);
  1944.  
  1945. #if !GENERATINGCFM
  1946. #pragma parameter __D0 PBDTAddIconAsync(__A0)
  1947. #endif
  1948. extern pascal OSErr PBDTAddIconAsync(DTPBPtr paramBlock)
  1949.  TWOWORDINLINE(0x7022, 0xA660);
  1950. #define PBDTGetIcon(pb, async) ((async) ? PBDTGetIconAsync(pb) : PBDTGetIconSync(pb))
  1951.  
  1952. #if !GENERATINGCFM
  1953. #pragma parameter __D0 PBDTGetIconSync(__A0)
  1954. #endif
  1955. extern pascal OSErr PBDTGetIconSync(DTPBPtr paramBlock)
  1956.  TWOWORDINLINE(0x7023, 0xA260);
  1957.  
  1958. #if !GENERATINGCFM
  1959. #pragma parameter __D0 PBDTGetIconAsync(__A0)
  1960. #endif
  1961. extern pascal OSErr PBDTGetIconAsync(DTPBPtr paramBlock)
  1962.  TWOWORDINLINE(0x7023, 0xA660);
  1963. #define PBDTGetIconInfo(pb, async) ((async) ? PBDTGetIconInfoAsync(pb) : PBDTGetIconInfoSync(pb))
  1964.  
  1965. #if !GENERATINGCFM
  1966. #pragma parameter __D0 PBDTGetIconInfoSync(__A0)
  1967. #endif
  1968. extern pascal OSErr PBDTGetIconInfoSync(DTPBPtr paramBlock)
  1969.  TWOWORDINLINE(0x7024, 0xA260);
  1970.  
  1971. #if !GENERATINGCFM
  1972. #pragma parameter __D0 PBDTGetIconInfoAsync(__A0)
  1973. #endif
  1974. extern pascal OSErr PBDTGetIconInfoAsync(DTPBPtr paramBlock)
  1975.  TWOWORDINLINE(0x7024, 0xA660);
  1976. #define PBDTAddAPPL(pb, async) ((async) ? PBDTAddAPPLAsync(pb) : PBDTAddAPPLSync(pb))
  1977.  
  1978. #if !GENERATINGCFM
  1979. #pragma parameter __D0 PBDTAddAPPLSync(__A0)
  1980. #endif
  1981. extern pascal OSErr PBDTAddAPPLSync(DTPBPtr paramBlock)
  1982.  TWOWORDINLINE(0x7025, 0xA260);
  1983.  
  1984. #if !GENERATINGCFM
  1985. #pragma parameter __D0 PBDTAddAPPLAsync(__A0)
  1986. #endif
  1987. extern pascal OSErr PBDTAddAPPLAsync(DTPBPtr paramBlock)
  1988.  TWOWORDINLINE(0x7025, 0xA660);
  1989. #define PBDTRemoveAPPL(pb, async) ((async) ? PBDTRemoveAPPLAsync(pb) : PBDTRemoveAPPLSync(pb))
  1990.  
  1991. #if !GENERATINGCFM
  1992. #pragma parameter __D0 PBDTRemoveAPPLSync(__A0)
  1993. #endif
  1994. extern pascal OSErr PBDTRemoveAPPLSync(DTPBPtr paramBlock)
  1995.  TWOWORDINLINE(0x7026, 0xA260);
  1996.  
  1997. #if !GENERATINGCFM
  1998. #pragma parameter __D0 PBDTRemoveAPPLAsync(__A0)
  1999. #endif
  2000. extern pascal OSErr PBDTRemoveAPPLAsync(DTPBPtr paramBlock)
  2001.  TWOWORDINLINE(0x7026, 0xA660);
  2002. #define PBDTGetAPPL(pb, async) ((async) ? PBDTGetAPPLAsync(pb) : PBDTGetAPPLSync(pb))
  2003.  
  2004. #if !GENERATINGCFM
  2005. #pragma parameter __D0 PBDTGetAPPLSync(__A0)
  2006. #endif
  2007. extern pascal OSErr PBDTGetAPPLSync(DTPBPtr paramBlock)
  2008.  TWOWORDINLINE(0x7027, 0xA260);
  2009.  
  2010. #if !GENERATINGCFM
  2011. #pragma parameter __D0 PBDTGetAPPLAsync(__A0)
  2012. #endif
  2013. extern pascal OSErr PBDTGetAPPLAsync(DTPBPtr paramBlock)
  2014.  TWOWORDINLINE(0x7027, 0xA660);
  2015. #define PBDTSetComment(pb, async) ((async) ? PBDTSetCommentAsync(pb) : PBDTSetCommentSync(pb))
  2016.  
  2017. #if !GENERATINGCFM
  2018. #pragma parameter __D0 PBDTSetCommentSync(__A0)
  2019. #endif
  2020. extern pascal OSErr PBDTSetCommentSync(DTPBPtr paramBlock)
  2021.  TWOWORDINLINE(0x7028, 0xA260);
  2022.  
  2023. #if !GENERATINGCFM
  2024. #pragma parameter __D0 PBDTSetCommentAsync(__A0)
  2025. #endif
  2026. extern pascal OSErr PBDTSetCommentAsync(DTPBPtr paramBlock)
  2027.  TWOWORDINLINE(0x7028, 0xA660);
  2028. #define PBDTRemoveComment(pb, async) ((async) ? PBDTRemoveCommentAsync(pb) : PBDTRemoveCommentSync(pb))
  2029.  
  2030. #if !GENERATINGCFM
  2031. #pragma parameter __D0 PBDTRemoveCommentSync(__A0)
  2032. #endif
  2033. extern pascal OSErr PBDTRemoveCommentSync(DTPBPtr paramBlock)
  2034.  TWOWORDINLINE(0x7029, 0xA260);
  2035.  
  2036. #if !GENERATINGCFM
  2037. #pragma parameter __D0 PBDTRemoveCommentAsync(__A0)
  2038. #endif
  2039. extern pascal OSErr PBDTRemoveCommentAsync(DTPBPtr paramBlock)
  2040.  TWOWORDINLINE(0x7029, 0xA660);
  2041. #define PBDTGetComment(pb, async) ((async) ? PBDTGetCommentAsync(pb) : PBDTGetCommentSync(pb))
  2042.  
  2043. #if !GENERATINGCFM
  2044. #pragma parameter __D0 PBDTGetCommentSync(__A0)
  2045. #endif
  2046. extern pascal OSErr PBDTGetCommentSync(DTPBPtr paramBlock)
  2047.  TWOWORDINLINE(0x702A, 0xA260);
  2048.  
  2049. #if !GENERATINGCFM
  2050. #pragma parameter __D0 PBDTGetCommentAsync(__A0)
  2051. #endif
  2052. extern pascal OSErr PBDTGetCommentAsync(DTPBPtr paramBlock)
  2053.  TWOWORDINLINE(0x702A, 0xA660);
  2054. #define PBDTFlush(pb, async) ((async) ? PBDTFlushAsync(pb) : PBDTFlushSync(pb))
  2055.  
  2056. #if !GENERATINGCFM
  2057. #pragma parameter __D0 PBDTFlushSync(__A0)
  2058. #endif
  2059. extern pascal OSErr PBDTFlushSync(DTPBPtr paramBlock)
  2060.  TWOWORDINLINE(0x702B, 0xA260);
  2061.  
  2062. #if !GENERATINGCFM
  2063. #pragma parameter __D0 PBDTFlushAsync(__A0)
  2064. #endif
  2065. extern pascal OSErr PBDTFlushAsync(DTPBPtr paramBlock)
  2066.  TWOWORDINLINE(0x702B, 0xA660);
  2067. #define PBDTReset(pb, async) ((async) ? PBDTResetAsync(pb) : PBDTResetSync(pb))
  2068.  
  2069. #if !GENERATINGCFM
  2070. #pragma parameter __D0 PBDTResetSync(__A0)
  2071. #endif
  2072. extern pascal OSErr PBDTResetSync(DTPBPtr paramBlock)
  2073.  TWOWORDINLINE(0x702C, 0xA260);
  2074.  
  2075. #if !GENERATINGCFM
  2076. #pragma parameter __D0 PBDTResetAsync(__A0)
  2077. #endif
  2078. extern pascal OSErr PBDTResetAsync(DTPBPtr paramBlock)
  2079.  TWOWORDINLINE(0x702C, 0xA660);
  2080. #define PBDTGetInfo(pb, async) ((async) ? PBDTGetInfoAsync(pb) : PBDTGetInfoSync(pb))
  2081.  
  2082. #if !GENERATINGCFM
  2083. #pragma parameter __D0 PBDTGetInfoSync(__A0)
  2084. #endif
  2085. extern pascal OSErr PBDTGetInfoSync(DTPBPtr paramBlock)
  2086.  TWOWORDINLINE(0x702D, 0xA260);
  2087.  
  2088. #if !GENERATINGCFM
  2089. #pragma parameter __D0 PBDTGetInfoAsync(__A0)
  2090. #endif
  2091. extern pascal OSErr PBDTGetInfoAsync(DTPBPtr paramBlock)
  2092.  TWOWORDINLINE(0x702D, 0xA660);
  2093.  
  2094. #if !GENERATINGCFM
  2095. #pragma parameter __D0 PBDTOpenInform(__A0)
  2096. #endif
  2097. extern pascal OSErr PBDTOpenInform(DTPBPtr paramBlock)
  2098.  TWOWORDINLINE(0x702E, 0xA060);
  2099. #define PBDTDelete(pb, async) ((async) ? PBDTDeleteAsync(pb) : PBDTDeleteSync(pb))
  2100.  
  2101. #if !GENERATINGCFM
  2102. #pragma parameter __D0 PBDTDeleteSync(__A0)
  2103. #endif
  2104. extern pascal OSErr PBDTDeleteSync(DTPBPtr paramBlock)
  2105.  TWOWORDINLINE(0x702F, 0xA060);
  2106.  
  2107. #if !GENERATINGCFM
  2108. #pragma parameter __D0 PBDTDeleteAsync(__A0)
  2109. #endif
  2110. extern pascal OSErr PBDTDeleteAsync(DTPBPtr paramBlock)
  2111.  TWOWORDINLINE(0x702F, 0xA460);
  2112. /*  VolumeMount traps  */
  2113.  
  2114. #if !GENERATINGCFM
  2115. #pragma parameter __D0 PBGetVolMountInfoSize(__A0)
  2116. #endif
  2117. extern pascal OSErr PBGetVolMountInfoSize(ParmBlkPtr paramBlock)
  2118.  TWOWORDINLINE(0x703F, 0xA260);
  2119.  
  2120. #if !GENERATINGCFM
  2121. #pragma parameter __D0 PBGetVolMountInfo(__A0)
  2122. #endif
  2123. extern pascal OSErr PBGetVolMountInfo(ParmBlkPtr paramBlock)
  2124.  TWOWORDINLINE(0x7040, 0xA260);
  2125.  
  2126. #if !GENERATINGCFM
  2127. #pragma parameter __D0 PBVolumeMount(__A0)
  2128. #endif
  2129. extern pascal OSErr PBVolumeMount(ParmBlkPtr paramBlock)
  2130.  TWOWORDINLINE(0x7041, 0xA260);
  2131. /*  FSp traps  */
  2132. extern pascal OSErr FSMakeFSSpec(short vRefNum, long dirID, ConstStr255Param fileName, FSSpec *spec)
  2133.  TWOWORDINLINE(0x7001, 0xAA52);
  2134. extern pascal OSErr FSpOpenDF(const FSSpec *spec, SInt8 permission, short *refNum)
  2135.  TWOWORDINLINE(0x7002, 0xAA52);
  2136. extern pascal OSErr FSpOpenRF(const FSSpec *spec, SInt8 permission, short *refNum)
  2137.  TWOWORDINLINE(0x7003, 0xAA52);
  2138. extern pascal OSErr FSpCreate(const FSSpec *spec, OSType creator, OSType fileType, ScriptCode scriptTag)
  2139.  TWOWORDINLINE(0x7004, 0xAA52);
  2140. extern pascal OSErr FSpDirCreate(const FSSpec *spec, ScriptCode scriptTag, long *createdDirID)
  2141.  TWOWORDINLINE(0x7005, 0xAA52);
  2142. extern pascal OSErr FSpDelete(const FSSpec *spec)
  2143.  TWOWORDINLINE(0x7006, 0xAA52);
  2144. extern pascal OSErr FSpGetFInfo(const FSSpec *spec, FInfo *fndrInfo)
  2145.  TWOWORDINLINE(0x7007, 0xAA52);
  2146. extern pascal OSErr FSpSetFInfo(const FSSpec *spec, const FInfo *fndrInfo)
  2147.  TWOWORDINLINE(0x7008, 0xAA52);
  2148. extern pascal OSErr FSpSetFLock(const FSSpec *spec)
  2149.  TWOWORDINLINE(0x7009, 0xAA52);
  2150. extern pascal OSErr FSpRstFLock(const FSSpec *spec)
  2151.  TWOWORDINLINE(0x700A, 0xAA52);
  2152. extern pascal OSErr FSpRename(const FSSpec *spec, ConstStr255Param newName)
  2153.  TWOWORDINLINE(0x700B, 0xAA52);
  2154. extern pascal OSErr FSpCatMove(const FSSpec *source, const FSSpec *dest)
  2155.  TWOWORDINLINE(0x700C, 0xAA52);
  2156. extern pascal OSErr FSpExchangeFiles(const FSSpec *source, const FSSpec *dest)
  2157.  TWOWORDINLINE(0x700F, 0xAA52);
  2158. /*
  2159.     PBGetAltAccess and PBSetAltAccess are obsolete and will not be supported 
  2160.     on PowerPC. Equivalent functionality is provided by the routines 
  2161.     PBGetForeignPrivs and PBSetForeignPrivs.
  2162. */
  2163. #if OLDROUTINENAMES && !GENERATINGCFM
  2164. #define PBGetAltAccess(pb, async) ((async) ? PBGetAltAccessAsync(pb) : PBGetAltAccessSync(pb))
  2165.  
  2166. #if !GENERATINGCFM
  2167. #pragma parameter __D0 PBGetAltAccessSync(__A0)
  2168. #endif
  2169. extern pascal OSErr PBGetAltAccessSync(HParmBlkPtr paramBlock)
  2170.  TWOWORDINLINE(0x7060, 0xA060);
  2171.  
  2172. #if !GENERATINGCFM
  2173. #pragma parameter __D0 PBGetAltAccessAsync(__A0)
  2174. #endif
  2175. extern pascal OSErr PBGetAltAccessAsync(HParmBlkPtr paramBlock)
  2176.  TWOWORDINLINE(0x7060, 0xA460);
  2177. #define PBSetAltAccess(pb, async) ((async) ? PBSetAltAccessAsync(pb) : PBSetAltAccessSync(pb))
  2178.  
  2179. #if !GENERATINGCFM
  2180. #pragma parameter __D0 PBSetAltAccessSync(__A0)
  2181. #endif
  2182. extern pascal OSErr PBSetAltAccessSync(HParmBlkPtr paramBlock)
  2183.  TWOWORDINLINE(0x7061, 0xA060);
  2184.  
  2185. #if !GENERATINGCFM
  2186. #pragma parameter __D0 PBSetAltAccessAsync(__A0)
  2187. #endif
  2188. extern pascal OSErr PBSetAltAccessAsync(HParmBlkPtr paramBlock)
  2189.  TWOWORDINLINE(0x7061, 0xA460);
  2190. #endif
  2191.  
  2192. #if !GENERATINGCFM
  2193. #pragma parameter __D0 PBShareSync(__A0)
  2194. #endif
  2195. extern pascal OSErr PBShareSync(HParmBlkPtr paramBlock)
  2196.  TWOWORDINLINE(0x7042, 0xA260);
  2197.  
  2198. #if !GENERATINGCFM
  2199. #pragma parameter __D0 PBShareAsync(__A0)
  2200. #endif
  2201. extern pascal OSErr PBShareAsync(HParmBlkPtr paramBlock)
  2202.  TWOWORDINLINE(0x7042, 0xA660);
  2203.  
  2204. #if !GENERATINGCFM
  2205. #pragma parameter __D0 PBUnshareSync(__A0)
  2206. #endif
  2207. extern pascal OSErr PBUnshareSync(HParmBlkPtr paramBlock)
  2208.  TWOWORDINLINE(0x7043, 0xA260);
  2209.  
  2210. #if !GENERATINGCFM
  2211. #pragma parameter __D0 PBUnshareAsync(__A0)
  2212. #endif
  2213. extern pascal OSErr PBUnshareAsync(HParmBlkPtr paramBlock)
  2214.  TWOWORDINLINE(0x7043, 0xA660);
  2215.  
  2216. #if !GENERATINGCFM
  2217. #pragma parameter __D0 PBGetUGEntrySync(__A0)
  2218. #endif
  2219. extern pascal OSErr PBGetUGEntrySync(HParmBlkPtr paramBlock)
  2220.  TWOWORDINLINE(0x7044, 0xA260);
  2221.  
  2222. #if !GENERATINGCFM
  2223. #pragma parameter __D0 PBGetUGEntryAsync(__A0)
  2224. #endif
  2225. extern pascal OSErr PBGetUGEntryAsync(HParmBlkPtr paramBlock)
  2226.  TWOWORDINLINE(0x7044, 0xA660);
  2227.  
  2228. #if PRAGMA_IMPORT_SUPPORTED
  2229. #pragma import off
  2230. #endif
  2231.  
  2232. #if PRAGMA_ALIGN_SUPPORTED
  2233. #pragma options align=reset
  2234. #endif
  2235.  
  2236. #ifdef __cplusplus
  2237. }
  2238. #endif
  2239.  
  2240. #endif /* __FILES__ */
  2241.